@@ -1,3 +1,4 | |||||
|
1 | from email.utils import localtime | |||
1 | import os |
|
2 | import os | |
2 | import time |
|
3 | import time | |
3 | import datetime |
|
4 | import datetime | |
@@ -376,7 +377,7 class HDFWriter(Operation): | |||||
376 | for key, value in kwargs.items(): |
|
377 | for key, value in kwargs.items(): | |
377 | setattr(obj, key, value) |
|
378 | setattr(obj, key, value) | |
378 |
|
379 | |||
379 | def setup(self, path=None, blocksPerFile=10, metadataList=None, dataList=None, setType=None, description=None,type_data=None,**kwargs): |
|
380 | def setup(self, path=None, blocksPerFile=10, metadataList=None, dataList=None, setType=None, description=None,type_data=None, localtime=True, **kwargs): | |
380 | self.path = path |
|
381 | self.path = path | |
381 | self.blocksPerFile = blocksPerFile |
|
382 | self.blocksPerFile = blocksPerFile | |
382 | self.metadataList = metadataList |
|
383 | self.metadataList = metadataList | |
@@ -396,6 +397,10 class HDFWriter(Operation): | |||||
396 | 'R' : 7, |
|
397 | 'R' : 7, | |
397 | } |
|
398 | } | |
398 |
|
399 | |||
|
400 | if localtime: | |||
|
401 | self.getDateTime = datetime.datetime.fromtimestamp | |||
|
402 | else: | |||
|
403 | self.getDateTime = datetime.datetime.utcfromtimestamp | |||
399 |
|
404 | |||
400 | self.description = description |
|
405 | self.description = description | |
401 | self.type_data=type_data |
|
406 | self.type_data=type_data | |
@@ -403,7 +408,6 class HDFWriter(Operation): | |||||
403 | if self.metadataList is None: |
|
408 | if self.metadataList is None: | |
404 | self.metadataList = self.dataOut.metadata_list |
|
409 | self.metadataList = self.dataOut.metadata_list | |
405 |
|
410 | |||
406 | tableList = [] |
|
|||
407 | dsList = [] |
|
411 | dsList = [] | |
408 |
|
412 | |||
409 | for i in range(len(self.dataList)): |
|
413 | for i in range(len(self.dataList)): | |
@@ -433,8 +437,9 class HDFWriter(Operation): | |||||
433 |
|
437 | |||
434 | def timeFlag(self): |
|
438 | def timeFlag(self): | |
435 | currentTime = self.dataOut.utctime |
|
439 | currentTime = self.dataOut.utctime | |
436 |
t |
|
440 | dt = self.getDateTime(currentTime) | |
437 | dataDay = timeTuple.tm_yday |
|
441 | ||
|
442 | dataDay = int(dt.strftime('%j')) | |||
438 |
|
443 | |||
439 | if self.lastTime is None: |
|
444 | if self.lastTime is None: | |
440 | self.lastTime = currentTime |
|
445 | self.lastTime = currentTime | |
@@ -456,7 +461,7 class HDFWriter(Operation): | |||||
456 |
|
461 | |||
457 | def run(self, dataOut, path, blocksPerFile=10, metadataList=None, |
|
462 | def run(self, dataOut, path, blocksPerFile=10, metadataList=None, | |
458 | dataList=[], setType=None, description={}, mode= None, |
|
463 | dataList=[], setType=None, description={}, mode= None, | |
459 | type_data=None, Reset = False,**kwargs): |
|
464 | type_data=None, Reset = False, localtime=True, **kwargs): | |
460 |
|
465 | |||
461 | if Reset: |
|
466 | if Reset: | |
462 | self.isConfig = False |
|
467 | self.isConfig = False | |
@@ -470,7 +475,8 class HDFWriter(Operation): | |||||
470 | if not(self.isConfig): |
|
475 | if not(self.isConfig): | |
471 | self.setup(path=path, blocksPerFile=blocksPerFile, |
|
476 | self.setup(path=path, blocksPerFile=blocksPerFile, | |
472 | metadataList=metadataList, dataList=dataList, |
|
477 | metadataList=metadataList, dataList=dataList, | |
473 |
setType=setType, description=description,type_data=type_data, |
|
478 | setType=setType, description=description,type_data=type_data, | |
|
479 | localtime=localtime, **kwargs) | |||
474 |
|
480 | |||
475 | self.isConfig = True |
|
481 | self.isConfig = True | |
476 | self.setNextFile() |
|
482 | self.setNextFile() | |
@@ -483,18 +489,13 class HDFWriter(Operation): | |||||
483 | ext = self.ext |
|
489 | ext = self.ext | |
484 | path = self.path |
|
490 | path = self.path | |
485 | setFile = self.setFile |
|
491 | setFile = self.setFile | |
486 | type_data = self.type_data |
|
|||
487 |
|
492 | |||
488 |
t |
|
493 | dt = self.getDateTime(self.dataOut.utctime) | |
489 |
|
494 | |||
490 | if self.setType == 'weather': |
|
495 | if self.setType == 'weather': | |
491 |
subfolder = '% |
|
496 | subfolder = dt.strftime('%Y-%m-%dT%H-00-00') | |
492 | timeTuple.tm_mon, |
|
|||
493 | timeTuple.tm_mday, |
|
|||
494 | timeTuple.tm_hour, |
|
|||
495 | ) |
|
|||
496 | else: |
|
497 | else: | |
497 | subfolder = 'd%4.4d%3.3d' % (timeTuple.tm_year,timeTuple.tm_yday) |
|
498 | subfolder = dt.strftime('d%Y%j') | |
498 |
|
499 | |||
499 | fullpath = os.path.join(path, subfolder) |
|
500 | fullpath = os.path.join(path, subfolder) | |
500 |
|
501 | |||
@@ -520,8 +521,8 class HDFWriter(Operation): | |||||
520 | if self.setType is None: |
|
521 | if self.setType is None: | |
521 | setFile += 1 |
|
522 | setFile += 1 | |
522 | file = '%s%4.4d%3.3d%03d%s' % (self.optchar, |
|
523 | file = '%s%4.4d%3.3d%03d%s' % (self.optchar, | |
523 |
t |
|
524 | dt.year, | |
524 |
|
|
525 | int(dt.strftime('%j')), | |
525 | setFile, |
|
526 | setFile, | |
526 | ext ) |
|
527 | ext ) | |
527 | elif self.setType == "weather": |
|
528 | elif self.setType == "weather": | |
@@ -541,22 +542,22 class HDFWriter(Operation): | |||||
541 |
|
542 | |||
542 | file = '%s_%2.2d%2.2d%2.2d_%2.2d%2.2d%2.2d_%s%2.1f_%s%s' % ( |
|
543 | file = '%s_%2.2d%2.2d%2.2d_%2.2d%2.2d%2.2d_%s%2.1f_%s%s' % ( | |
543 | 'SOPHY', |
|
544 | 'SOPHY', | |
544 |
t |
|
545 | dt.year, | |
545 |
t |
|
546 | dt.month, | |
546 |
t |
|
547 | dt.day, | |
547 |
t |
|
548 | dt.hour, | |
548 |
t |
|
549 | dt.minute, | |
549 |
t |
|
550 | dt.second, | |
550 | ang_type, |
|
551 | ang_type, | |
551 | ang_, |
|
552 | ang_, | |
552 | self.weather_var, |
|
553 | self.weather_var, | |
553 | ext ) |
|
554 | ext ) | |
554 |
|
555 | |||
555 | else: |
|
556 | else: | |
556 |
setFile = t |
|
557 | setFile = dt.hour*60+dt.minute | |
557 | file = '%s%4.4d%3.3d%04d%s' % (self.optchar, |
|
558 | file = '%s%4.4d%3.3d%04d%s' % (self.optchar, | |
558 |
t |
|
559 | dt.year, | |
559 |
|
|
560 | int(dt.strftime('%j')), | |
560 | setFile, |
|
561 | setFile, | |
561 | ext ) |
|
562 | ext ) | |
562 |
|
563 |
General Comments 0
You need to be logged in to leave comments.
Login now