-
Notifications
You must be signed in to change notification settings - Fork 212
Update snow obs preprocessing job #2946
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
4098f10
8d1bc87
6ff65bc
2295cab
5074d11
f122edf
73b4ec0
086158d
2df23be
bb8775a
5ddf552
0bfbff7
3c08705
850f672
6f2fc66
30c19d4
08bb8d8
8a4a743
b12a375
679e57e
d97480a
ed78b8c
eac7e1f
96254c4
a00f9e8
20b3b9c
db3a912
2e319a7
3d8c9d3
7148c4e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -563,21 +563,25 @@ def aeroanlfinal(self): | |||||
|
|
||||||
| return task | ||||||
|
|
||||||
| def prepsnowobs(self): | ||||||
| def prepsnowcover(self): | ||||||
|
|
||||||
| deps = [] | ||||||
| dep_dict = {'type': 'task', 'name': f'{self.run}_prep'} | ||||||
| deps.append(rocoto.add_dependency(dep_dict)) | ||||||
| dependencies = rocoto.create_dependency(dep=deps) | ||||||
|
|
||||||
| resources = self.get_resource('prepsnowobs') | ||||||
| task_name = f'{self.run}_prepsnowobs' | ||||||
| cycledef = 'gdas_prep_snocvr' | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| if self.run in ['gfs']: | ||||||
| cycledef = self.run | ||||||
|
|
||||||
| resources = self.get_resource('prepsnowcover') | ||||||
| task_name = f'{self.run}_prepsnowcover' | ||||||
| task_dict = {'task_name': task_name, | ||||||
| 'resources': resources, | ||||||
| 'dependency': dependencies, | ||||||
| 'envars': self.envars, | ||||||
| 'cycledef': self.run.replace('enkf', ''), | ||||||
| 'command': f'{self.HOMEgfs}/jobs/rocoto/prepsnowobs.sh', | ||||||
| 'cycledef': cycledef, | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Made changes as suggested. Thanks.
Comment on lines
+573
to
+583
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this solution will only work if the gfs runs on just the 00z cycle. If the gfs forecast is to run on 06, 12, and/or 18z, then this job will be added to the mesh and will fail. I see two options.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @DavidHuber-NOAA for your review. Per above test, the gfs runs at 18z cycle, the added Therefore, the current settings won't cause any problems to the workflow. I was thinking to add another In addition, the option 2 you proposed above is the same with current setting as below: @DavidHuber-NOAA Do you agree with me? Thank you very much.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, I do agree with you now that I see the change you made in @WalterKolczynski-NOAA what do you think?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agree that we want to eliminate do-nothing jobs. For a solution, we need to answer some questions first::
We had similar restraints with metp, and the answers were once a day and it could be run even if there was no GFS in that cycle, but only if there was GFS sometime that day. The solution there was to run metp at 18z every day if the GFS ran more frequently than once a day (even if GFS did not run at 18z), and on the gfs cycledef if the GFS was run less often than once/day.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @WalterKolczynski-NOAA for your reply. I think @CoryMartin-NOAA is best person to give more accurate answers. @CoryMartin-NOAA Would you please answer these questions? Thanks.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd need to check to confirm, but I think, while it doesn't need to run for GFS and would be identical to GDAS, the GFS cycle runs 'first', so in ops this matters, but in R&D not so much. So perhaps we can use the GDAS 00z file in the GFS 00z analysis (but I don't know if this dependency is a good idea). For your other questions:
|
||||||
| 'command': f'{self.HOMEgfs}/jobs/rocoto/prepsnowcover.sh', | ||||||
| 'job_name': f'{self.pslot}_{task_name}_@H', | ||||||
| 'log': f'{self.rotdir}/logs/@Y@m@d@H/{task_name}.log', | ||||||
| 'maxtries': '&MAXTRIES;' | ||||||
|
|
@@ -590,9 +594,17 @@ def prepsnowobs(self): | |||||
| def snowanl(self): | ||||||
|
|
||||||
| deps = [] | ||||||
| dep_dict = {'type': 'task', 'name': f'{self.run}_prepsnowobs'} | ||||||
| dep_dict = {'type': 'task', 'name': f'{self.run}_prepsnowcover'} | ||||||
| deps.append(rocoto.add_dependency(dep_dict)) | ||||||
| dependencies = rocoto.create_dependency(dep=deps) | ||||||
|
|
||||||
| deps2 = [] | ||||||
| dep_dict = {'type': 'taskvalid', 'name': f'{self.run}_prepsnowcover', 'condition': 'not'} | ||||||
| deps2.append(rocoto.add_dependency(dep_dict)) | ||||||
| dep_dict = {'type': 'task', 'name': f'{self.run}_prep'} | ||||||
| deps2.append(rocoto.add_dependency(dep_dict)) | ||||||
| deps.append(rocoto.create_dependency(dep_condition='and', dep=deps2)) | ||||||
|
|
||||||
| dependencies = rocoto.create_dependency(dep_condition='or', dep=deps) | ||||||
|
|
||||||
| resources = self.get_resource('snowanl') | ||||||
| task_name = f'{self.run}_snowanl' | ||||||
|
|
@@ -613,8 +625,6 @@ def snowanl(self): | |||||
| def esnowrecen(self): | ||||||
|
|
||||||
| deps = [] | ||||||
| dep_dict = {'type': 'task', 'name': f'{self.run.replace("enkf","")}_prepsnowobs'} | ||||||
| deps.append(rocoto.add_dependency(dep_dict)) | ||||||
| dep_dict = {'type': 'task', 'name': f'{self.run.replace("enkf","")}_snowanl'} | ||||||
| deps.append(rocoto.add_dependency(dep_dict)) | ||||||
| dep_dict = {'type': 'metatask', 'name': f'{self.run}_epmn', 'offset': f"-{timedelta_to_HMS(self._base['interval_gdas'])}"} | ||||||
|
|
||||||
Uh oh!
There was an error while loading. Please reload this page.