-
Notifications
You must be signed in to change notification settings - Fork 11
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
add ensemble sdv to diag ( selected variables ) #635
Conversation
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
3 similar comments
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
@saraqzhang, thanks for putting this together. I've gone through the changes quickly. Here are my 2c, for further discussion:
For now the above is just some food for thought and further discussion. It's not meant to be a complete review. |
@gmao-rreichle , the "before and after analysis" selection records fcst spread (ensGC) and anal spread (assimGC) , respectively. I put the specification for stdv as in "inst" collection in HISTORY.rc. If they are put in tavg collection, MAPL will calculate time average of the ens. sdtv. |
…ke variance factor (N-1)
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
@gmao-rreichle , I made modifications corresponding to your comments earlier, and pushed the changes to the branch. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
… zero in ensstd calculations
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
PS: I recommend hiding white space differences when looking at the "Files Changed" (on the Files Changed tab, click on Settings, then check the button). |
@gmao-rreichle , I will pull the revised branch and run test. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
@saraqzhang: Sorry, I just realized that there was no protection against (small) negative values in the ens std output. I added one more commit: 37dbf00 |
@gmao-rreichle , the revised branch passed test ( settings of ens_N > 1 ; assim ) , and outputs of std are verified. Should we also test the case of ens_N =1 & no assim ? |
Thanks, @saraqzhang. Yes, it would be good to run a very short test for N_ens=1, just to verify that the ensstd output is indeed MAPL_UNDEF everywhere. Another useful short test could be to request ens std output for N>1 but remove the ens avg variables from HISTORY. In this case, you should also get MAPL_UNDEF everywhere given the current implementation. If we want to have ens std output in the absence of matching ens avg output, we have to modify the if conditions. I didn't deal with this yesterday but I think it may be straightforward by changing BTW, how exactly did you write ensstd output? Was it written in tile space? If so, please verify that the LONG_NAMES and units in the nc4 file are as expected. This has to go through tile_bin2nc4.F90, which hadn't been modified in the original PR, and I'm wondering how you were able to get good nc4 files in your earlier tests. (GEOSldas_HIST.rc had ens std variables only in the 1d lndfcstana collection, which is why I assume you wrote output in tile space.) I might be missing something. |
@gmao-rreichle , I realized that I pushed the wrong version of GEOSldas_HIST.rc in my local branch. I had HISTORY.rc in the test run dir. that had std in grid output (Nx) . We should be able to write std in 1d tile collection though I have not tested that . |
Is the version of GEOSldas_HIST.rc that is on the branch right now ok, then? |
@gmao-rreichle , yes the current version of GEOSldas_HIST.rc works for both Nx and Nt outputs for ensstd . |
@gmao-rreichle , the summary of tests for ensstd : |
@saraqzhang: We do have a use case where ASSIM is engaged for N_ens=1. This is for the rule-based snow cover fraction assimilation that Lauren is working on. The functionality for using ASSIM with N_ens=1 may still be only on Lauren's branch, but it will be merged at some point in the future, so we need to protect against users requesting "ensstd" output when N_ens=1. I think the easiest way to do this is to simply set the export to MAPL_UNDEF if it cannot be computed because there is only one ensemble member.
Re. ana_ensstd, the output for ensstd when N_ens=1 should be MAPL_UNDEF, based on the following lines of code: GEOSldas/src/Components/GEOSldas_GridComp/GEOSlandassim_GridComp/GEOS_LandAssimGridComp.F90 Line 2019 in 37dbf00
Is this what's happening?
I'm confused. How would MAPL HISTORY write out a variable if it's not in HISTORY.rc?
Yes, indeed. The question is whether it's worth the extra work. Usually, I would expect that ensavg output is written whenever ensstd output is requested. Not sure if it's worth to implement getting ensstd output (other than MAPL_UNDEF) when ensavg is not in HISTORY.rc. The question is whether it's easier to properly document/explain this use case or to just implement it with the internal ensavg calcs. |
@gmao-rreichle , "values outputted (no matter if the variables are or not in HISTORY.rc )." bad writing,. ens stats are carried out regardless HISTORY.rc, but the output is still controlled by HISTORY.rc. |
@saraqzhang: By Lauren's branch I was referring to #512 (for which the branch is in my name, but Lauren is working on it). The only modification in this PR that has anything to do with using ASSIM when N_ens=1 is in GEOS_LandPertGridComp.F90, and that's not really relevant here. I'm thinking that the infrastructure needed to make ASSIM work with N_ens=1 must already be on the GEOSldas "develop" branch. But I'm not sure if I'm completely off here or perhaps you missed the change in functionality. |
…ut; rearrange do loop in GEOS_LandAssimGridComp.F90
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
@saraqzhang: I added on commit as discussed: 42f5e71 |
will pull the revision and carry out tests. |
@gmao-rreichle , the test on ensstd without ensavg failed. I realize that memory allocations for those variables are controlled by MAPL HISTORY,. Without ensavg in the history collection list the pointer does not have a memory address to point to. Thus the run failed with segmentation fault. we can try locally allocated variables just for the case of ensstd without ensavg, though the code will not look as neat and efficient. |
…put when ensavg HISTORY output is not also requested
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
@saraqzhang: Thanks for the update. It's too bad there's not an elegant solution for ensstd output when ensavg output is not simultaneously requested in HISTORY. I reverted the previous commit and think it's ok as is now. I also merged develop, which was just updated, into the branch and added some rudimentary documentation of the ENSSTD output into GEOSldas_HIST.rc. Please double-check the following two commits: f6a1b71 and 89a8cc5 |
This PR is being prevented from merging because you have added one of our blocking labels: Contingent - DNA, Needs Lead Approval, Contingent -- Do Not Approve. You'll need to remove it before this PR can be merged. |
All Nightly Tests passed on the branch. |
@gmao-rreichle , tests passed : (1) ens_N >1, LDAS_ASSIM=YES output valid values of ensavg and ensstd |
add calculation of ensemble standard deviation and output to diag for selected variables ( in lndfcstand_Nx collection)