├── regions └── global025.txt ├── timeseriesnamelist ├── timeseriessurffile.txt ├── timeseriesrawfile.txt ├── CTSM53_MODIS_CURRENT_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_PFT_LAI_generatesurfdata.txt └── CTSM53_MODIS_CURRENT_SOIL_COLOR_generatesurfdata.txt ├── luh3modiscrunamelist ├── luh3modiscruclimatemask.txt ├── luh3modiscruexperimentfile.txt ├── luh3modiscrupftfile.txt ├── luh3modiscrulandusefile.txt └── luh3modiscruclimatefile.txt ├── worknamelist ├── CRU_321_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_VCF_generatesurfdata.txt ├── CTSM53_POTVEGCOMB_RANGE_VCF_generatesurfdata.txt ├── CTSM53_FORESTMAX_RANGE_VCF_generatesurfdata.txt ├── CTSM53_POTVEGMAX_RANGE_VCF_generatesurfdata.txt ├── CTSM53_FORESTMAX_FOREST_VCF_generatesurfdata.txt ├── CTSM53_POTVEGINIT_RANGE_VCF_generatesurfdata.txt ├── CTSM53_POTVEGMAX_FOREST_VCF_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_generateallrawdata.txt ├── CTSM53_POTVEGCOMB_FOREST_VCF_generatesurfdata.txt ├── CTSM53_POTVEGINIT_FOREST_VCF_generatesurfdata.txt ├── CTSM53_FORESTMAX_NONFOREST_VCF_generatesurfdata.txt ├── CTSM53_POTVEGMAX_NONFOREST_VCF_generatesurfdata.txt ├── CTSM53_POTVEGSCALED_RANGE_VCF_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_VCF_generateallrawdata.txt ├── CTSM53_POTVEGCOMB_NONFOREST_VCF_generatesurfdata.txt ├── CTSM53_POTVEGINIT_NONFOREST_VCF_generatesurfdata.txt ├── CTSM53_POTVEGSCALED_FOREST_VCF_generatesurfdata.txt ├── CTSM53_POTVEGSCALED_NONFOREST_VCF_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_EXTRAP_HERB_VCF_PFT_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_EXTRAP_TREE_VCF_PFT_generatesurfdata.txt ├── CTSM53_MODIS_CURRENT_EXTRAP_GRASS_VCF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_MERGE_generatesurfdata.txt ├── CTSM53_LUH3_SSP119_CMIP7_MERGE_generatesurfdata.txt ├── CTSM53_LUH3_SSP126_CMIP7_MERGE_generatesurfdata.txt ├── CTSM53_LUH3_SSP245_CMIP7_MERGE_generatesurfdata.txt ├── CTSM53_LUH3_SSP370_CMIP7_MERGE_generatesurfdata.txt ├── CTSM53_LUH3_SSP460_CMIP7_MERGE_generatesurfdata.txt ├── CTSM53_LUH3_SSP585_CMIP7_MERGE_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_MERGE_generateallrawdata.txt ├── CTSM53_POTVEGINIT_RANGE_VCF_generateallrawdata.txt ├── CTSM53_POTVEGINIT_FOREST_VCF_generateallrawdata.txt ├── CTSM53_POTVEGINIT_NONFOREST_VCF_generateallrawdata.txt ├── workrawfile.txt ├── CTSM53_LUH3_SSP119_CMIP7_MERGE_generateallrawdata.txt ├── CTSM53_LUH3_SSP126_CMIP7_MERGE_generateallrawdata.txt ├── CTSM53_LUH3_SSP245_CMIP7_MERGE_generateallrawdata.txt ├── CTSM53_LUH3_SSP370_CMIP7_MERGE_generateallrawdata.txt ├── CTSM53_LUH3_SSP460_CMIP7_MERGE_generateallrawdata.txt ├── CTSM53_LUH3_SSP585_CMIP7_MERGE_generateallrawdata.txt ├── worksurffile.txt ├── CTSM53_POTVEGCOMB_ALL_VCF_generateallrawdata.txt ├── CTSM53_MODIS_CURRENT_EXTRAP_VCF_PFT_generateallrawdata.txt ├── CTSM53_FORESTMAX_ALL_VCF_generateallrawdata.txt ├── CTSM53_POTVEGSCALED_ALL_VCF_generateallrawdata.txt ├── worksspmergefile.txt ├── CTSM53_POTVEGMAX_ALL_VCF_generateallrawdata.txt └── workhistmergefile.txt ├── luh3namelist ├── LUH3_HIST_CMIP7_gensurfdata.txt ├── LUH3_SSP119_CMIP7_gensurfdata.txt ├── LUH3_SSP126_CMIP7_gensurfdata.txt ├── LUH3_SSP245_CMIP7_gensurfdata.txt ├── LUH3_SSP370_CMIP7_gensurfdata.txt ├── LUH3_SSP460_CMIP7_gensurfdata.txt ├── LUH3_SSP585_CMIP7_gensurfdata.txt ├── LUH3_NOANTHRO_CMIP7_gensurfdata.txt ├── luh3surffile.txt ├── luh3rawfile.txt └── luh3variablelist.txt ├── tools ├── runcreatetimeseriesdirs ├── runcreateluh3modiscrudirs ├── runcreateworkvcfsurfdata ├── runcreateworkmergesurfdata ├── runcreateworkclimatesurfdata ├── runcreateworkclm5surfdata ├── runcreateworkmodiscurrentvcfrawdata ├── runcreateworkclm5extrapallvcfpftrawdata ├── runcreatetimeseriesclm5surfdata ├── runcreateworkforestallmaxvcfrawdata ├── runcreateworkmodiscurrentallrawdata ├── runcreateworkpotvegallmaxvcfrawdata ├── runcreateluh3desccftsurfdata ├── runcreateluh3descpftsurfdata ├── runcreateluh3descpastrrawdata ├── runcreateluh3descprimfrawdata ├── runcreateluh3descprimnrawdata ├── runcreateluh3descrangerawdata ├── runcreateluh3descsecdfrawdata ├── runcreateluh3descsecdnrawdata ├── runcreateworkpotvegallcombinedvcfrawdata ├── runcreateworkpotvegallscaledvcfrawdata ├── runcreateluh3descc3annrawdata ├── runcreateluh3descc3nfxrawdata ├── runcreateluh3descc3perrawdata ├── runcreateluh3descc4annrawdata ├── runcreateluh3descc4perrawdata ├── runcreatetimeseriesclm5pftlaisurfdata ├── runcreatetimeseriesclm5soilcolorsurfdata ├── runcreateworkpotvegrangeinitialvcfrawdata ├── runcreateworkpotvegforestinitialvcfrawdata ├── runcreateworkpotvegnonforestinitialvcfrawdata ├── runcreateluh3dirs ├── runcreateluh3modiscruclimatevegetationrawlutfile ├── runcreateluh3allsurfdata ├── runcreateworkmergeallssprawdata ├── runcreateluh3modiscruclimatevegetationpotentiallutfile ├── runcreateluh3modiscruclimatevegetationnormalizedlutfile ├── runcreateluh3modiscruclimatevegetationrefittedlutfile ├── runcreateluh3modiscruclimatevegetationfinallutfile ├── runcreateluh3descdirs ├── runcreateworkmergeallhistoricalrawdata └── runcreateworkdirs ├── luh3descnamelist ├── luh3descsurffile.txt ├── luh3descrawfile.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_PRIMN_PFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_SSP119_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_SSP126_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_SSP245_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_SSP370_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_SSP460_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_SSP585_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_PASTR_PFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C3ANN_CFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C3NFX_CFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C3PER_CFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C4ANN_CFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C4PER_CFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_PRIMF_PFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_RANGE_PFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_SECDN_PFT_generatesurfdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C3ANN_CFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C3NFX_CFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C3PER_CFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C4ANN_CFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_C4PER_CFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_PASTR_PFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_PRIMF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_RANGE_PFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_SSP119_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_SSP126_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_SSP245_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_SSP370_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_SSP460_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_SSP585_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_PRIMN_PFT_generateallrawdata.txt ├── CTSM53_LUH3_HIST_CMIP7_DESC_SECDN_PFT_generateallrawdata.txt └── luh3desccropparamfile.txt ├── README.md ├── README.configure ├── ctsm53landuseprepconfig ├── bin └── Makefile ├── script ├── createtimeseriessoilcolorsurfdata.py ├── createluh3modiscruclimatevegetationrawlutfile.py ├── createluh3modiscruclimatevegetationnormalizedlutfile.py └── createluh3modiscruclimatevegetationpotentiallutfile.py └── README.process /regions/global025.txt: -------------------------------------------------------------------------------- 1 | -180.0 2 | -90.0 3 | 180.0 4 | 90.0 5 | 0.25 6 | -------------------------------------------------------------------------------- /timeseriesnamelist/timeseriessurffile.txt: -------------------------------------------------------------------------------- 1 | CTSM53_MODIS_CURRENT 2005 2005 2 | -------------------------------------------------------------------------------- /timeseriesnamelist/timeseriesrawfile.txt: -------------------------------------------------------------------------------- 1 | CLM5_GEOG_DEG025 1961 2016 2 | -------------------------------------------------------------------------------- /luh3modiscrunamelist/luh3modiscruclimatemask.txt: -------------------------------------------------------------------------------- 1 | 0 + -15.0 35.0 0.0 6000.0 2 | 1 - 12.0 35.0 1500.0 6000.0 3 | -------------------------------------------------------------------------------- /worknamelist/CRU_321_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | climatecru321name CRU_321 3 | worksurfoutput CRU_321 4 | worksurfoutputname CRU_321_climate_deg025.nc 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | clm5modisyear 2005 7 | -------------------------------------------------------------------------------- /luh3modiscrunamelist/luh3modiscruexperimentfile.txt: -------------------------------------------------------------------------------- 1 | LUH3_MODIS_CRU_HIST_CMIP7 2005 LUH3 850 2023 LUH3_HIST_CMIP7/states.nc 2 | LUH3_MODIS_CRU_HIST_CMIP7 2005 MODIS 2005 2005 CTSM53_MODIS_CURRENT/CTSM53_MODIS_CURRENT_2005_deg025.nc 3 | LUH3_MODIS_CRU_HIST_CMIP7 2005 CLIMATE 2005 2005 CRU_321/CRU_321_climate_deg025.nc 4 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_HIST_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_HIST_CMIP7 3 | luh3surfoutput LUH3_HIST_CMIP7 4 | luh3rawinput LUH3_HIST_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 850 7 | luh3endyear 2023 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_SSP119_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_SSP119_CMIP7 3 | luh3surfoutput LUH3_SSP119_CMIP7 4 | luh3rawinput LUH3_SSP119_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 2023 7 | luh3endyear 2100 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_SSP126_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_SSP126_CMIP7 3 | luh3surfoutput LUH3_SSP126_CMIP7 4 | luh3rawinput LUH3_SSP126_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 2023 7 | luh3endyear 2100 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_SSP245_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_SSP245_CMIP7 3 | luh3surfoutput LUH3_SSP245_CMIP7 4 | luh3rawinput LUH3_SSP245_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 2023 7 | luh3endyear 2100 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_SSP370_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_SSP370_CMIP7 3 | luh3surfoutput LUH3_SSP370_CMIP7 4 | luh3rawinput LUH3_SSP370_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 2023 7 | luh3endyear 2100 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_SSP460_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_SSP460_CMIP7 3 | luh3surfoutput LUH3_SSP460_CMIP7 4 | luh3rawinput LUH3_SSP460_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 2023 7 | luh3endyear 2100 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_SSP585_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_SSP585_CMIP7 3 | luh3surfoutput LUH3_SSP585_CMIP7 4 | luh3rawinput LUH3_SSP585_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 2023 7 | luh3endyear 2100 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /luh3namelist/LUH3_NOANTHRO_CMIP7_gensurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3name LUH3_NOANTHRO_CMIP7 3 | luh3surfoutput LUH3_NOANTHRO_CMIP7 4 | luh3rawinput LUH3_NOANTHRO_CMIP7_GEOG_DEG025 5 | clm5modisrawinput CLM5_GEOG_DEG025 6 | luh3startyear 1 7 | luh3endyear 1 8 | clm5modisyear CLIM 9 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | modiscurrentname CTSM53_MODIS_CURRENT 3 | worksurfoutput CTSM53_MODIS_CURRENT 4 | worksurfoutputname CTSM53_MODIS_CURRENT_2005_deg025.nc 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname CLM5_GEOG_DEG025 7 | clm5modisyear 2005 8 | -------------------------------------------------------------------------------- /timeseriesnamelist/CTSM53_MODIS_CURRENT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | modiscurrentname CTSM53_MODIS_CURRENT 3 | timeseriessurfoutput CTSM53_MODIS_CURRENT 4 | timeseriessurfoutputname CTSM53_MODIS_CURRENT_2005_deg025.nc 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname CLM5_GEOG_DEG025 7 | clm5modisyear 2005 8 | -------------------------------------------------------------------------------- /timeseriesnamelist/CTSM53_MODIS_CURRENT_PFT_LAI_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currenttimeseriespftlainame CTSM53_MODIS_CURRENT_PFT_LAI 3 | timeseriessurfoutput CTSM53_MODIS_CURRENT 4 | timeseriessurfoutputname CTSM53_MODIS_CURRENT_PFT_LAI_2005_deg025.nc 5 | timeseriesrawinput CLM5_GEOG_DEG025 6 | timeseriesrawinputyear CLIM 7 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_MODIS_CURRENT_VCF 3 | worksurfoutput CTSM53_MODIS_CURRENT 4 | worksurfoutputname CTSM53_MODIS_CURRENT_VCF_2005_deg025.nc 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGCOMB_RANGE_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGCOMB_VCF 3 | worksurfoutput CTSM53_POTVEGCOMB 4 | worksurfoutputname CTSM53_POTVEGCOMB_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGCOMB 6 | workrawinputname RANGE_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_FORESTMAX_RANGE_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_FORESTMAX_RANGE_VCF 3 | worksurfoutput CTSM53_FORESTMAX 4 | worksurfoutputname CTSM53_FORESTMAX_RANGE_VCF_2005_deg025.nc 5 | workrawinput CTSM53_FORESTMAX 6 | workrawinputname RANGE_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGMAX_RANGE_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGMAX_RANGE_VCF 3 | worksurfoutput CTSM53_POTVEGMAX 4 | worksurfoutputname CTSM53_POTVEGMAX_RANGE_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGMAX 6 | workrawinputname RANGE_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_FORESTMAX_FOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_FORESTMAX_FOREST_VCF 3 | worksurfoutput CTSM53_FORESTMAX 4 | worksurfoutputname CTSM53_FORESTMAX_FOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_FORESTMAX 6 | workrawinputname FOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGINIT_RANGE_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGINIT_RANGE_VCF 3 | worksurfoutput CTSM53_POTVEGINIT 4 | worksurfoutputname CTSM53_POTVEGINIT_RANGE_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGINIT 6 | workrawinputname RANGE_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGMAX_FOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGMAX_FOREST_VCF 3 | worksurfoutput CTSM53_POTVEGMAX 4 | worksurfoutputname CTSM53_POTVEGMAX_FOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGMAX 6 | workrawinputname FOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentname CTSM53_MODIS_CURRENT 3 | workrawoutput CTSM53_MODIS_CURRENT 4 | workrawoutputname CLM5_GEOG_DEG025 5 | luh3rawinput LUH3_HIST_CMIP7_GEOG_DEG025 6 | luh3rawinputyear 2005 7 | clm5currentrawinput CLM5_GEOG_DEG025 8 | clm5modisyear 2005 9 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGCOMB_FOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGCOMB_FOREST_VCF 3 | worksurfoutput CTSM53_POTVEGCOMB 4 | worksurfoutputname CTSM53_POTVEGCOMB_FOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGCOMB 6 | workrawinputname FOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGINIT_FOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGINIT_FOREST_VCF 3 | worksurfoutput CTSM53_POTVEGINIT 4 | worksurfoutputname CTSM53_POTVEGINIT_FOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGINIT 6 | workrawinputname FOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_FORESTMAX_NONFOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_FORESTMAX_NONFOREST_VCF 3 | worksurfoutput CTSM53_FORESTMAX 4 | worksurfoutputname CTSM53_FORESTMAX_NONFOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_FORESTMAX 6 | workrawinputname NONFOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGMAX_NONFOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGMAX_NONFOREST_VCF 3 | worksurfoutput CTSM53_POTVEGMAX 4 | worksurfoutputname CTSM53_POTVEGMAX_NONFOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGMAX 6 | workrawinputname NONFOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGSCALED_RANGE_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGSCALED_RANGE_VCF 3 | worksurfoutput CTSM53_POTVEGSCALED 4 | worksurfoutputname CTSM53_POTVEGSCALED_RANGE_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGSCALED 6 | workrawinputname RANGE_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /timeseriesnamelist/CTSM53_MODIS_CURRENT_SOIL_COLOR_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currenttimeseriessoilcolorname CTSM53_MODIS_CURRENT_SOIL_COLOR 3 | timeseriessurfoutput CTSM53_MODIS_CURRENT 4 | timeseriessurfoutputname CTSM53_MODIS_CURRENT_SOIL_COLOR_2005_deg025.nc 5 | timeseriesrawinput CLM5_GEOG_DEG025 6 | timeseriesrawinputyear CLIM 7 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_MODIS_CURRENT_VCF 3 | workrawoutput CTSM53_MODIS_CURRENT 4 | workrawoutputname VCF_GEOG_DEG025 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinput CLM5_GEOG_DEG025 8 | clm5modisyear 2005 9 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGCOMB_NONFOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGCOMB_NONFOREST_VCF 3 | worksurfoutput CTSM53_POTVEGCOMB 4 | worksurfoutputname CTSM53_POTVEGCOMB_NONFOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGCOMB 6 | workrawinputname NONFOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGINIT_NONFOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGINIT_NONFOREST_VCF 3 | worksurfoutput CTSM53_POTVEGINIT 4 | worksurfoutputname CTSM53_POTVEGINIT_NONFOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGINIT 6 | workrawinputname NONFOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGSCALED_FOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGSCALED_FOREST_VCF 3 | worksurfoutput CTSM53_POTVEGSCALED 4 | worksurfoutputname CTSM53_POTVEGSCALED_FOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGSCALED 6 | workrawinputname FOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /tools/runcreatetimeseriesdirs: -------------------------------------------------------------------------------- 1 | 2 | if [ -f ./ctsm53landuseprepconfig ]; 3 | then 4 | source ./ctsm53landuseprepconfig 5 | fi 6 | 7 | if [ -f ../ctsm53landuseprepconfig ]; 8 | then 9 | source ../ctsm53landuseprepconfig 10 | fi 11 | 12 | if [ -d ${timeseriessurfdir} ]; 13 | then 14 | echo "Timeseries Surface Directory ${timeseriessurfdir} Already Exists" 15 | else 16 | mkdir ${timeseriessurfdir} 17 | mkdir ${timeseriessurfdir}CTSM53_MODIS_CURRENT 18 | fi 19 | -------------------------------------------------------------------------------- /luh3descnamelist/luh3descsurffile.txt: -------------------------------------------------------------------------------- 1 | CTSM53_LUH3_HIST_CMIP7 1850 2023 2 | CTSM53_LUH3_SSP119_CMIP7 2023 2100 3 | CTSM53_LUH3_SSP126_CMIP7 2023 2100 4 | CTSM53_LUH3_SSP245_CMIP7 2023 2100 5 | CTSM53_LUH3_SSP370_CMIP7 2023 2100 6 | CTSM53_LUH3_SSP460_CMIP7 2023 2100 7 | CTSM53_LUH3_SSP585_CMIP7 2023 2100 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGSCALED_NONFOREST_VCF_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentvcfname CTSM53_POTVEGSCALED_NONFOREST_VCF 3 | worksurfoutput CTSM53_POTVEGSCALED 4 | worksurfoutputname CTSM53_POTVEGSCALED_NONFOREST_VCF_2005_deg025.nc 5 | workrawinput CTSM53_POTVEGSCALED 6 | workrawinputname NONFOREST_VCF_GEOG_DEG025 7 | workrawinputyear 2005 8 | -------------------------------------------------------------------------------- /luh3descnamelist/luh3descrawfile.txt: -------------------------------------------------------------------------------- 1 | CTSM53_LUH3_HIST_CMIP7 1850 2023 2 | CTSM53_LUH3_SSP119_CMIP7 2023 2100 3 | CTSM53_LUH3_SSP126_CMIP7 2023 2100 4 | CTSM53_LUH3_SSP245_CMIP7 2023 2100 5 | CTSM53_LUH3_SSP370_CMIP7 2023 2100 6 | CTSM53_LUH3_SSP460_CMIP7 2023 2100 7 | CTSM53_LUH3_SSP585_CMIP7 2023 2100 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_HERB_VCF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | modiscurrentextrapname CTSM53_MODIS_CURRENT_EXTRAP_HERB 3 | worksurfoutput CTSM53_MODIS_CURRENT 4 | worksurfoutputname CTSM53_MODIS_CURRENT_EXTRAP_HERB_2005_deg025.nc 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname HERB_EXTRAP_GEOG_DEG025 7 | clm5modisyear 2005 8 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_TREE_VCF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | modiscurrentextrapname CTSM53_MODIS_CURRENT_EXTRAP_TREE 3 | worksurfoutput CTSM53_MODIS_CURRENT 4 | worksurfoutputname CTSM53_MODIS_CURRENT_EXTRAP_TREE_2005_deg025.nc 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname TREE_EXTRAP_GEOG_DEG025 7 | clm5modisyear 2005 8 | -------------------------------------------------------------------------------- /tools/runcreateluh3modiscrudirs: -------------------------------------------------------------------------------- 1 | 2 | if [ -f ./ctsm53landuseprepconfig ]; 3 | then 4 | source ./ctsm53landuseprepconfig 5 | fi 6 | 7 | if [ -f ../ctsm53landuseprepconfig ]; 8 | then 9 | source ../ctsm53landuseprepconfig 10 | fi 11 | 12 | if [ -d ${luh3modiscrurawdir} ]; 13 | then 14 | echo "luh3modiscrurawdir Raw Directory ${luh3modiscrurawdir} Already Exists" 15 | else 16 | mkdir ${luh3modiscrurawdir} 17 | mkdir ${luh3modiscrurawdir}LUH3_MODIS_CRU_HIST_CMIP7 18 | fi 19 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_GRASS_VCF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | modiscurrentextrapname CTSM53_MODIS_CURRENT_EXTRAP_GRASS 3 | worksurfoutput CTSM53_MODIS_CURRENT 4 | worksurfoutputname CTSM53_MODIS_CURRENT_EXTRAP_GRASS_2005_deg025.nc 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname GRASS_EXTRAP_GEOG_DEG025 7 | clm5modisyear 2005 8 | -------------------------------------------------------------------------------- /tools/runcreateworkvcfsurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreatemodisearthstatsurffile vcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | vcfnamelistfile=${1} 19 | 20 | python ${scriptdir}createworkvcfsurfdata.py ${vcfnamelistfile} ${workrawfile} ${workrawdir} ${regionfile} ${worksurffile} ${worksurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkmergesurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreatemodisearthstatsurffile mergenamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | mergenamelistfile=${1} 19 | 20 | python ${scriptdir}createworkmergesurfdata.py ${mergenamelistfile} ${workrawfile} ${workrawdir} ${regionfile} ${worksurffile} ${worksurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkclimatesurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateclimatesurfdata climatenamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | climatenamelistfile=${1} 19 | 20 | python ${scriptdir}createworkclimatesurfdata.py ${climatenamelistfile} ${timeseriesrawfile} ${timeseriesrawdir} ${regionfile} ${worksurffile} ${worksurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkclm5surfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreatemodiscurrentsurffile modiscurrentnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | modiscurrentnamelistfile=${1} 19 | 20 | python ${scriptdir}createworkclm5surfdata.py ${modiscurrentnamelistfile} ${workrawfile} ${workrawdir} ${regionfile} ${worksurffile} ${worksurfdir} 21 | -------------------------------------------------------------------------------- /luh3namelist/luh3surffile.txt: -------------------------------------------------------------------------------- 1 | LUH3_NOANTHRO_CMIP7 1 1 2 | LUH3_HIST_CMIP7 850 2023 3 | LUH3_SSP119_CMIP7 2023 2100 4 | LUH3_SSP126_CMIP7 2023 2100 5 | LUH3_SSP245_CMIP7 2023 2100 6 | LUH3_SSP370_CMIP7 2023 2100 7 | LUH3_SSP434_CMIP7 2023 2100 8 | LUH3_SSP460_CMIP7 2023 2100 9 | LUH3_SSP534_CMIP7 2023 2100 10 | LUH3_SSP585_CMIP7 2023 2100 11 | -------------------------------------------------------------------------------- /tools/runcreateworkmodiscurrentvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh2modisearthstatvcfrawfiles currentvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | currentvcfnamelistfile=${1} 19 | 20 | ${bindir}createallpotvegvcfcurrentLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${currentvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkclm5extrapallvcfpftrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh2clm5extrapvcfrawdata extrapvcfpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | extrapvcfpftnamelistfile=${1} 19 | 20 | ${bindir}createallextrapvcfpftLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${extrapvcfpftnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreatetimeseriesclm5surfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreatemodiscurrentsurffile modiscurrentnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | modiscurrentnamelistfile=${1} 19 | 20 | python ${scriptdir}createtimeseriesclm5surfdata.py ${modiscurrentnamelistfile} ${workrawfile} ${workrawdir} ${regionfile} ${timeseriessurffile} ${timeseriessurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkforestallmaxvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateworkforestallmaxvcfrawdata forestallmaxvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | forestallmaxvcfnamelistfile=${1} 19 | 20 | ${bindir}createallforestvcfmaxLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${forestallmaxvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkmodiscurrentallrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3modiscurrentallrawfiles workrawnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | currentnamelistfile=${1} 19 | 20 | ${bindir}createallcurrentLUH3CTSM53Deg025bin ${luh3rawfile} ${luh3rawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${currentnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkpotvegallmaxvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh2potvegallpotvegvcfrawfiles potvegallmaxvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | potvegallmaxvcfnamelistfile=${1} 19 | 20 | ${bindir}createallpotvegvcfmaxLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${potvegallmaxvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreateluh3desccftsurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3desccftsurffile luh3desccftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3desccftnamelistfile=${1} 19 | 20 | python ${scriptdir}createluh3desccftsurfdata.py ${luh3desccftnamelistfile} ${luh3descrawfile} ${luh3descrawdir} ${workrawfile} ${workrawdir} ${regionfile} ${luh3descsurffile} ${luh3descsurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreateluh3descpftsurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descpftsurffile luh3descpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descpftnamelistfile=${1} 19 | 20 | python ${scriptdir}createluh3descpftsurfdata.py ${luh3descpftnamelistfile} ${luh3descrawfile} ${luh3descrawdir} ${workrawfile} ${workrawdir} ${regionfile} ${luh3descsurffile} ${luh3descsurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreateluh3descpastrrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descpastrrawdata luh3descpastrpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descpastrpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescpastrLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3descpastrpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descprimfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descprimfrawdata luh3descprimfpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descprimfpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescprimfLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3descprimfpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descprimnrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descprimnrawdata luh3descprimnpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descprimnpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescprimnLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3descprimnpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descrangerawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descrangerawdata luh3descrangepftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descrangepftnamelistfile=${1} 19 | 20 | ${bindir}createalldescrangeLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3descrangepftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descsecdfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descsecdfrawdata luh3descsecdfpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descsecdfpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescsecdfLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3descsecdfpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descsecdnrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descsecdnrawdata luh3descsecdnpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descsecdnpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescsecdnLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3descsecdnpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateworkpotvegallcombinedvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh2potvegallcombinedvcfrawfiles potvegallcombinedvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | potvegallcombinedvcfnamelistfile=${1} 19 | 20 | ${bindir}createallpotvegvcfcombinedLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${potvegallcombinedvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkpotvegallscaledvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3potvegallscaledvcfrawfiles potvegallscaledvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | potvegallscaledvcfnamelistfile=${1} 19 | 20 | ${bindir}createallpotvegvcfscaledLUH3CTSM53Deg025bin ${luh3rawfile} ${luh3rawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${potvegallscaledvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreateluh3descc3annrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descc3annrawdata luh3descc3annpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descc3annpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescc3annLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3desccropparamfile} ${luh3descc3annpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descc3nfxrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descc3nfxrawdata luh3descc3nfxpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descc3nfxpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescc3nfxLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3desccropparamfile} ${luh3descc3nfxpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descc3perrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descc3perrawdata luh3descc3perpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descc3perpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescc3perLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3desccropparamfile} ${luh3descc3perpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descc4annrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descc4annrawdata luh3descc4annpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descc4annpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescc4annLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3desccropparamfile} ${luh3descc4annpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreateluh3descc4perrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3descc4perrawdata luh3descc4perpftnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3descc4perpftnamelistfile=${1} 19 | 20 | ${bindir}createalldescc4perLUH3CTSM53Deg025bin ${luh3descrawfile} ${luh3descrawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3desccropparamfile} ${luh3descc4perpftnamelistfile} 21 | 22 | -------------------------------------------------------------------------------- /tools/runcreatetimeseriesclm5pftlaisurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreatetimesseriesclm5pftlaisurfdata timesseriesdescpftlainamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | timesseriesdescpftlainamelistfile=${1} 19 | 20 | python ${scriptdir}createtimeseriespftlaisurfdata.py ${timesseriesdescpftlainamelistfile} ${timeseriesrawfile} ${timeseriesrawdir} ${regionfile} ${timeseriessurffile} ${timeseriessurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreatetimeseriesclm5soilcolorsurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreatetimeseriesdescsoilcolorsurfdata timeseriesdescsoilcolornamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | timeseriesdescsoilcolornamelistfile=${1} 19 | 20 | python ${scriptdir}createtimeseriessoilcolorsurfdata.py ${timeseriesdescsoilcolornamelistfile} ${timeseriesrawfile} ${timeseriesrawdir} ${regionfile} ${timeseriessurffile} ${timeseriessurfdir} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkpotvegrangeinitialvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3potvegrangeinitialvcfrawfiles potvegrangeinitialvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | potvegrangeinitialvcfnamelistfile=${1} 19 | 20 | ${bindir}createrangepotvegvcfinitialLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3modiscruclimatefile} ${luh3modiscrurawdir} ${potvegrangeinitialvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /tools/runcreateworkpotvegforestinitialvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3potvegforestinitialvcfrawfiles potvegforestinitialvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | potvegforestinitialvcfnamelistfile=${1} 19 | 20 | ${bindir}createforestpotvegvcfinitialLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3modiscruclimatefile} ${luh3modiscrurawdir} ${potvegforestinitialvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMN_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_PRIMN_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_PRIMN_DESC_1850_2023_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname PRIMN_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1850 11 | luh3descrawinputendyear 2023 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_SECDF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_SECDF_DESC_1850_2023_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname SECDF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1850 11 | luh3descrawinputendyear 2023 12 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_HIST_CMIP7_MERGE_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentmergename CTSM53_LUH3_HIST_CMIP7_MERGE 3 | currentmergeluh2types ALL 4 | worksurfoutput CTSM53_LUH3_HIST_CMIP7 5 | worksurfoutputname CTSM53_LUH3_HIST_CMIP7_MERGE_1850_2023_deg025.nc 6 | clm5currentrawinput CTSM53_MODIS_CURRENT 7 | clm5currentrawinputname CLM5_GEOG_DEG025 8 | clm5currentrawinputyear 2005 9 | workrawinput CTSM53_LUH3_HIST_CMIP7 10 | workrawinputname MERGE_GEOG_DEG025 11 | workrawinputstartyear 1850 12 | workrawinputendyear 2023 13 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP119_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_SSP119_CMIP7_SECDF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_SSP119_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_SSP119_CMIP7_SECDF_DESC_2023_2100_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_SSP119_CMIP7 9 | luh3descrawinputname SECDF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 2023 11 | luh3descrawinputendyear 2100 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP126_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_SSP126_CMIP7_SECDF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_SSP126_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_SSP126_CMIP7_SECDF_DESC_2023_2100_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_SSP126_CMIP7 9 | luh3descrawinputname SECDF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 2023 11 | luh3descrawinputendyear 2100 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP245_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_SSP245_CMIP7_SECDF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_SSP245_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_SSP245_CMIP7_SECDF_DESC_2023_2100_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_SSP245_CMIP7 9 | luh3descrawinputname SECDF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 2023 11 | luh3descrawinputendyear 2100 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP370_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_SSP370_CMIP7_SECDF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_SSP370_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_SSP370_CMIP7_SECDF_DESC_2023_2100_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_SSP370_CMIP7 9 | luh3descrawinputname SECDF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 2023 11 | luh3descrawinputendyear 2100 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP460_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_SSP460_CMIP7_SECDF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_SSP460_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_SSP460_CMIP7_SECDF_DESC_2023_2100_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_SSP460_CMIP7 9 | luh3descrawinputname SECDF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 2023 11 | luh3descrawinputendyear 2100 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP585_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_SSP585_CMIP7_SECDF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_SSP585_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_SSP585_CMIP7_SECDF_DESC_2023_2100_deg025.nc 5 | clm5currentrawinput CTSM53_MODIS_CURRENT 6 | clm5currentrawinputname CLM5_GEOG_DEG025 7 | clm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_SSP585_CMIP7 9 | luh3descrawinputname SECDF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 2023 11 | luh3descrawinputendyear 2100 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PASTR_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_PASTR_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_PASTR_DESC_2005_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname PASTR_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 2005 11 | luh3descrawinputendyear 2005 12 | -------------------------------------------------------------------------------- /tools/runcreateworkpotvegnonforestinitialvcfrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3potvegnonforestinitialvcfrawfiles potvegnonforestinitialvcfnamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | potvegnonforestinitialvcfnamelistfile=${1} 19 | 20 | ${bindir}createnonforestpotvegvcfinitialLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${luh3modiscruclimatefile} ${luh3modiscrurawdir} ${potvegnonforestinitialvcfnamelistfile} 21 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP119_CMIP7_MERGE_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | futuremergename CTSM53_LUH3_SSP119_CMIP7_MERGE 3 | futuremergeluh3types SECDF 4 | worksurfoutput CTSM53_LUH3_SSP119_CMIP7 5 | worksurfoutputname CTSM53_LUH3_SSP119_CMIP7_MERGE_2023_2100_deg025.nc 6 | clm5currentrawinput CTSM53_MODIS_CURRENT 7 | clm5currentrawinputname CLM5_GEOG_DEG025 8 | clm5currentrawinputyear 2005 9 | workrawinput CTSM53_LUH3_SSP119_CMIP7 10 | workrawinputname MERGE_GEOG_DEG025 11 | workrawinputstartyear 2023 12 | workrawinputendyear 2100 13 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP126_CMIP7_MERGE_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | futuremergename CTSM53_LUH3_SSP126_CMIP7_MERGE 3 | futuremergeluh3types SECDF 4 | worksurfoutput CTSM53_LUH3_SSP126_CMIP7 5 | worksurfoutputname CTSM53_LUH3_SSP126_CMIP7_MERGE_2023_2100_deg025.nc 6 | clm5currentrawinput CTSM53_MODIS_CURRENT 7 | clm5currentrawinputname CLM5_GEOG_DEG025 8 | clm5currentrawinputyear 2005 9 | workrawinput CTSM53_LUH3_SSP126_CMIP7 10 | workrawinputname MERGE_GEOG_DEG025 11 | workrawinputstartyear 2023 12 | workrawinputendyear 2100 13 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP245_CMIP7_MERGE_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | futuremergename CTSM53_LUH3_SSP245_CMIP7_MERGE 3 | futuremergeluh3types SECDF 4 | worksurfoutput CTSM53_LUH3_SSP245_CMIP7 5 | worksurfoutputname CTSM53_LUH3_SSP245_CMIP7_MERGE_2023_2100_deg025.nc 6 | clm5currentrawinput CTSM53_MODIS_CURRENT 7 | clm5currentrawinputname CLM5_GEOG_DEG025 8 | clm5currentrawinputyear 2005 9 | workrawinput CTSM53_LUH3_SSP245_CMIP7 10 | workrawinputname MERGE_GEOG_DEG025 11 | workrawinputstartyear 2023 12 | workrawinputendyear 2100 13 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP370_CMIP7_MERGE_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | futuremergename CTSM53_LUH3_SSP370_CMIP7_MERGE 3 | futuremergeluh3types SECDF 4 | worksurfoutput CTSM53_LUH3_SSP370_CMIP7 5 | worksurfoutputname CTSM53_LUH3_SSP370_CMIP7_MERGE_2023_2100_deg025.nc 6 | clm5currentrawinput CTSM53_MODIS_CURRENT 7 | clm5currentrawinputname CLM5_GEOG_DEG025 8 | clm5currentrawinputyear 2005 9 | workrawinput CTSM53_LUH3_SSP370_CMIP7 10 | workrawinputname MERGE_GEOG_DEG025 11 | workrawinputstartyear 2023 12 | workrawinputendyear 2100 13 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP460_CMIP7_MERGE_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | futuremergename CTSM53_LUH3_SSP460_CMIP7_MERGE 3 | futuremergeluh3types SECDF 4 | worksurfoutput CTSM53_LUH3_SSP460_CMIP7 5 | worksurfoutputname CTSM53_LUH3_SSP460_CMIP7_MERGE_2023_2100_deg025.nc 6 | clm5currentrawinput CTSM53_MODIS_CURRENT 7 | clm5currentrawinputname CLM5_GEOG_DEG025 8 | clm5currentrawinputyear 2005 9 | workrawinput CTSM53_LUH3_SSP460_CMIP7 10 | workrawinputname MERGE_GEOG_DEG025 11 | workrawinputstartyear 2023 12 | workrawinputendyear 2100 13 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP585_CMIP7_MERGE_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | futuremergename CTSM53_LUH3_SSP585_CMIP7_MERGE 3 | futuremergeluh3types SECDF 4 | worksurfoutput CTSM53_LUH3_SSP585_CMIP7 5 | worksurfoutputname CTSM53_LUH3_SSP585_CMIP7_MERGE_2023_2100_deg025.nc 6 | clm5currentrawinput CTSM53_MODIS_CURRENT 7 | clm5currentrawinputname CLM5_GEOG_DEG025 8 | clm5currentrawinputyear 2005 9 | workrawinput CTSM53_LUH3_SSP585_CMIP7 10 | workrawinputname MERGE_GEOG_DEG025 11 | workrawinputstartyear 2023 12 | workrawinputendyear 2100 13 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3ANN_CFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_C3ANN_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_C3ANN_DESC_1961_2015_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname C3ANN_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1961 11 | luh3descrawinputendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3NFX_CFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_C3NFX_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_C3NFX_DESC_1961_2015_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname C3NFX_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1961 11 | luh3descrawinputendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3PER_CFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_C3PER_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_C3PER_DESC_1961_2015_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname C3PER_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1961 11 | luh3descrawinputendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4ANN_CFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_C4ANN_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_C4ANN_DESC_1961_2015_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname C4ANN_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1961 11 | luh3descrawinputendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4PER_CFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_C4PER_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_C4PER_DESC_1961_2015_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname C4PER_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1961 11 | luh3descrawinputendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMF_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_PRIMF_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_PRIMF_DESC_1850_2023_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname PRIMF_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1850 11 | luh3descrawinputendyear 2023 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_RANGE_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_RANGE_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_RANGE_DESC_1850_2023_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname RANGE_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1850 11 | luh3descrawinputendyear 2023 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDN_PFT_generatesurfdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentluh3descname CTSM53_LUH3_HIST_CMIP7_SECDN_DESC 3 | luh3descsurfoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descsurfoutputname CTSM53_LUH3_HIST_CMIP7_SECDN_DESC_1850_2023_deg025.nc 5 | workclm5currentrawinput CTSM53_MODIS_CURRENT 6 | workclm5currentrawinputname CLM5_GEOG_DEG025 7 | workclm5currentrawinputyear 2005 8 | luh3descrawinput CTSM53_LUH3_HIST_CMIP7 9 | luh3descrawinputname SECDN_DESC_GEOG_DEG025 10 | luh3descrawinputstartyear 1850 11 | luh3descrawinputendyear 2023 12 | -------------------------------------------------------------------------------- /luh3namelist/luh3rawfile.txt: -------------------------------------------------------------------------------- 1 | LUH3_NOANTHRO_CMIP7_GEOG_DEG025 1 1 2 | LUH3_HIST_CMIP7_GEOG_DEG025 850 2023 3 | LUH3_SSP119_CMIP7_GEOG_DEG025 2023 2100 4 | LUH3_SSP126_CMIP7_GEOG_DEG025 2023 2100 5 | LUH3_SSP245_CMIP7_GEOG_DEG025 2023 2100 6 | LUH3_SSP370_CMIP7_GEOG_DEG025 2023 2100 7 | LUH3_SSP434_CMIP7_GEOG_DEG025 2023 2100 8 | LUH3_SSP460_CMIP7_GEOG_DEG025 2023 2100 9 | LUH3_SSP534_CMIP7_GEOG_DEG025 2023 2100 10 | LUH3_SSP585_CMIP7_GEOG_DEG025 2023 2100 11 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_HIST_CMIP7_MERGE_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3histallmergename CTSM53_LUH3_HIST_CMIP7_ALL_MERGE 3 | workrawmergeoutput CTSM53_LUH3_HIST_CMIP7 4 | workrawmergeoutputname MERGE_GEOG_DEG025 5 | workrawmergeoutputstartyear 1850 6 | workrawmergeoutputendyear 2023 7 | workrawclm5input CTSM53_MODIS_CURRENT 8 | workrawclm5inputname CLM5_GEOG_DEG025 9 | workrawclm5inputyear 2005 10 | clm5modisrawinput CLM5_GEOG_DEG025 11 | clm5modisrawyear 2005 12 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGINIT_RANGE_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | potvegforestinitialvcfname CTSM53_POTVEGINIT_RANGE_VCF 3 | workrawoutput CTSM53_POTVEGINIT 4 | workrawoutputname RANGE_VCF_GEOG_DEG025 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname CLM5_GEOG_DEG025 7 | workrawinputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisyear 2005 10 | foresttreeclimatename CURRENT_RANGE_PCT_TREE 11 | forestherbclimatename CURRENT_RANGE_PCT_HERB 12 | forestbareclimatename CURRENT_RANGE_PCT_BARE 13 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGINIT_FOREST_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | potvegforestinitialvcfname CTSM53_POTVEGINIT_FOREST_VCF 3 | workrawoutput CTSM53_POTVEGINIT 4 | workrawoutputname FOREST_VCF_GEOG_DEG025 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname CLM5_GEOG_DEG025 7 | workrawinputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisyear 2005 10 | foresttreeclimatename CURRENT_FOREST_PCT_TREE 11 | forestherbclimatename CURRENT_FOREST_PCT_HERB 12 | forestbareclimatename CURRENT_FOREST_PCT_BARE 13 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3ANN_CFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallc3annallcftname CTSM53_LUH3_HIST_CMIP7_DESC_C3ANN_ALL_CFT 3 | luh3descrawcftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawcftoutputc3annname C3ANN_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisrawrreferenceyear 2005 10 | clm5modisrawrstartyear 1961 11 | clm5modisrawrendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3NFX_CFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallc3nfxallcftname CTSM53_LUH3_HIST_CMIP7_DESC_C3NFX_ALL_CFT 3 | luh3descrawcftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawcftoutputc3nfxname C3NFX_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisrawrreferenceyear 2005 10 | clm5modisrawrstartyear 1961 11 | clm5modisrawrendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3PER_CFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallc3perallcftname CTSM53_LUH3_HIST_CMIP7_DESC_C3PER_ALL_CFT 3 | luh3descrawcftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawcftoutputc3pername C3PER_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisrawrreferenceyear 2005 10 | clm5modisrawrstartyear 1961 11 | clm5modisrawrendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4ANN_CFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallc4annallcftname CTSM53_LUH3_HIST_CMIP7_DESC_C4ANN_All_CFT 3 | luh3descrawcftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawcftoutputc4annname C4ANN_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisrawrreferenceyear 2005 10 | clm5modisrawrstartyear 1961 11 | clm5modisrawrendyear 2015 12 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4PER_CFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallc4perallcftname CTSM53_LUH3_HIST_CMIP7_DESC_C4PER_ALL_CFT 3 | luh3descrawcftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawcftoutputc4pername C4PER_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisrawrreferenceyear 2005 10 | clm5modisrawrstartyear 1961 11 | clm5modisrawrendyear 2015 12 | -------------------------------------------------------------------------------- /tools/runcreateluh3dirs: -------------------------------------------------------------------------------- 1 | 2 | if [ -f ./ctsm53landuseprepconfig ]; 3 | then 4 | source ./ctsm53landuseprepconfig 5 | fi 6 | 7 | if [ -f ../ctsm53landuseprepconfig ]; 8 | then 9 | source ../ctsm53landuseprepconfig 10 | fi 11 | 12 | if [ -d ${luh3surfdir} ]; 13 | then 14 | echo "LUH3 Surface Directory ${luh3surfdir} Already Exists" 15 | else 16 | mkdir ${luh3surfdir} 17 | mkdir ${luh3surfdir}LUH3_NOANTHRO_CMIP7 18 | mkdir ${luh3surfdir}LUH3_HIST_CMIP7 19 | mkdir ${luh3surfdir}LUH3_SSP119_CMIP7 20 | mkdir ${luh3surfdir}LUH3_SSP126_CMIP7 21 | mkdir ${luh3surfdir}LUH3_SSP245_CMIP7 22 | mkdir ${luh3surfdir}LUH3_SSP370_CMIP7 23 | mkdir ${luh3surfdir}LUH3_SSP460_CMIP7 24 | mkdir ${luh3surfdir}LUH3_SSP585_CMIP7 25 | fi 26 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGINIT_NONFOREST_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | potvegnonforestinitialvcfname CTSM53_POTVEGINIT_NONFOREST_VCF 3 | workrawoutput CTSM53_POTVEGINIT 4 | workrawoutputname NONFOREST_VCF_GEOG_DEG025 5 | workrawinput CTSM53_MODIS_CURRENT 6 | workrawinputname CLM5_GEOG_DEG025 7 | workrawinputyear 2005 8 | clm5modisrawinput CLM5_GEOG_DEG025 9 | clm5modisyear 2005 10 | foresttreeclimatename CURRENT_NONFOREST_PCT_TREE 11 | forestherbclimatename CURRENT_NONFOREST_PCT_HERB 12 | forestbareclimatename CURRENT_NONFOREST_PCT_BARE 13 | -------------------------------------------------------------------------------- /worknamelist/workrawfile.txt: -------------------------------------------------------------------------------- 1 | CTSM53_MODIS_CURRENT 2005 2005 2 | CTSM53_POTVEGINIT 2005 2005 3 | CTSM53_POTVEGCOMB 2005 2005 4 | CTSM53_POTVEGSCALED 2005 2005 5 | CTSM53_POTVEGMAX 2005 2005 6 | CTSM53_FORESTMAX 2005 2005 7 | CTSM53_LUH3_HIST_CMIP7 1850 2023 8 | CTSM53_LUH3_SSP119_CMIP7 2024 2100 9 | CTSM53_LUH3_SSP126_CMIP7 2024 2100 10 | CTSM53_LUH3_SSP245_CMIP7 2024 2100 11 | CTSM53_LUH3_SSP370_CMIP7 2024 2100 12 | CTSM53_LUH3_SSP460_CMIP7 2024 2100 13 | CTSM53_LUH3_SSP585_CMIP7 2024 2100 14 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PASTR_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallpastrallpftname CTSM53_LUH3_HIST_CMIP7_DESC_PASTR_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawpftoutputpastrname PASTR_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawextrappftinput CTSM53_MODIS_CURRENT 9 | workrawextrappftinputgrassname GRASS_EXTRAP_GEOG_DEG025 10 | workrawextrappftinputyear 2005 11 | clm5modisrawinput CLM5_GEOG_DEG025 12 | clm5modisrawreferenceyear 2005 13 | -------------------------------------------------------------------------------- /luh3modiscrunamelist/luh3modiscrupftfile.txt: -------------------------------------------------------------------------------- 1 | PCT_BARE 1 0 2 | PCT_NDLEVGTEMP 1 1 3 | PCT_NDLEVGBORL 1 2 4 | PCT_NDLDECBORL 1 3 5 | PCT_BRDEVGTROP 1 4 6 | PCT_BRDEVGTEMP 1 5 7 | PCT_BRDDECTROP 1 6 8 | PCT_BRDDECTEMP 1 7 9 | PCT_BRDDECBORL 1 8 10 | PCT_SHREVGTEMP 1 9 11 | PCT_SHRDECTEMP 1 10 12 | PCT_SHRDECBORL 1 11 13 | PCT_GRSC3ARC 1 12 14 | PCT_GRSC3 1 13 15 | PCT_GRSC4 1 14 16 | PCT_TREE 8 1 2 3 4 5 6 7 8 17 | PCT_NDL 3 1 2 3 18 | PCT_NDLEVG 2 1 2 19 | PCT_BRD 5 4 5 6 7 8 20 | PCT_BRDEVG 2 4 5 21 | PCT_BRDDEC 3 6 7 8 22 | PCT_SHRUB 3 9 10 11 23 | PCT_GRASS 3 12 13 14 24 | PCT_HERB 6 9 10 11 12 13 14 25 | PCT_ALL 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | CTSM53 LUH3 Land Data Prep Workflow 2 | 3 | This is step two in the bigger picture of generating CTSM raw PFT/CFT data for mksurfdata_esmf. 4 | 5 | The prior stage is to take the 1km MODIS, AVHRR, ICESAT Satellite and EarthSTAT 6 | cropping products processed into a consistent format including grids and land masks. 7 | This step generates the LUH3 time series and LUH3 Descriptor files that are combined 8 | in the CTSM53 Land Data Tool. 9 | 10 | This instance is configured to produce the CMIP7 CTSM53 data. 11 | 12 | Tools require python configured with the NCAR python environment. 13 | 14 | On CGD machines 15 | module load lang/python 16 | 17 | On HPC machines 18 | module load conda 19 | conda activate npl 20 | 21 | To configure the tools follow the instructions in the README.configure file 22 | 23 | To process the CMIP7 CTSM53 LUH3 data follow the instructions in the README.process file 24 | 25 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP119_CMIP7_MERGE_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3ssp119allMERGEname CTSM53_LUH3_SSP119_CMIP7_ALL_MERGE 3 | workrawMERGEoutput CTSM53_LUH3_SSP119_CMIP7 4 | workrawMERGEoutputname MERGE_GEOG_DEG025 5 | workrawMERGEoutputstartyear 2023 6 | workrawMERGEoutputendyear 2100 7 | luh3rawinput LUH3_SSP119_CMIP7_GEOG_DEG025 8 | luh3rawstartyear 2023 9 | luh3rawendyear 2100 10 | luh3rawreferenceyear 2023 11 | workrawclm5input CTSM53_MODIS_CURRENT 12 | workrawclm5inputname CLM5_GEOG_DEG025 13 | workrawclm5inputyear 2005 14 | clm5modisrawinput CLM5_GEOG_DEG025 15 | clm5modisrawyear 2005 16 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP126_CMIP7_MERGE_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3ssp126allMERGEname CTSM53_LUH3_SSP126_CMIP7_ALL_MERGE 3 | workrawMERGEoutput CTSM53_LUH3_SSP126_CMIP7 4 | workrawMERGEoutputname MERGE_GEOG_DEG025 5 | workrawMERGEoutputstartyear 2023 6 | workrawMERGEoutputendyear 2100 7 | luh3rawinput LUH3_SSP126_CMIP7_GEOG_DEG025 8 | luh3rawstartyear 2023 9 | luh3rawendyear 2100 10 | luh3rawreferenceyear 2023 11 | workrawclm5input CTSM53_MODIS_CURRENT 12 | workrawclm5inputname CLM5_GEOG_DEG025 13 | workrawclm5inputyear 2005 14 | clm5modisrawinput CLM5_GEOG_DEG025 15 | clm5modisrawyear 2005 16 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP245_CMIP7_MERGE_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3ssp245allMERGEname CTSM53_LUH3_SSP245_CMIP7_ALL_MERGE 3 | workrawMERGEoutput CTSM53_LUH3_SSP245_CMIP7 4 | workrawMERGEoutputname MERGE_GEOG_DEG025 5 | workrawMERGEoutputstartyear 2023 6 | workrawMERGEoutputendyear 2100 7 | luh3rawinput LUH3_SSP245_CMIP7_GEOG_DEG025 8 | luh3rawstartyear 2023 9 | luh3rawendyear 2100 10 | luh3rawreferenceyear 2023 11 | workrawclm5input CTSM53_MODIS_CURRENT 12 | workrawclm5inputname CLM5_GEOG_DEG025 13 | workrawclm5inputyear 2005 14 | clm5modisrawinput CLM5_GEOG_DEG025 15 | clm5modisrawyear 2005 16 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP370_CMIP7_MERGE_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3ssp370allMERGEname CTSM53_LUH3_SSP370_CMIP7_ALL_MERGE 3 | workrawMERGEoutput CTSM53_LUH3_SSP370_CMIP7 4 | workrawMERGEoutputname MERGE_GEOG_DEG025 5 | workrawMERGEoutputstartyear 2023 6 | workrawMERGEoutputendyear 2100 7 | luh3rawinput LUH3_SSP370_CMIP7_GEOG_DEG025 8 | luh3rawstartyear 2023 9 | luh3rawendyear 2100 10 | luh3rawreferenceyear 2023 11 | workrawclm5input CTSM53_MODIS_CURRENT 12 | workrawclm5inputname CLM5_GEOG_DEG025 13 | workrawclm5inputyear 2005 14 | clm5modisrawinput CLM5_GEOG_DEG025 15 | clm5modisrawyear 2005 16 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP460_CMIP7_MERGE_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3ssp460allMERGEname CTSM53_LUH3_SSP460_CMIP7_ALL_MERGE 3 | workrawMERGEoutput CTSM53_LUH3_SSP460_CMIP7 4 | workrawMERGEoutputname MERGE_GEOG_DEG025 5 | workrawMERGEoutputstartyear 2023 6 | workrawMERGEoutputendyear 2100 7 | luh3rawinput LUH3_SSP460_CMIP7_GEOG_DEG025 8 | luh3rawstartyear 2023 9 | luh3rawendyear 2100 10 | luh3rawreferenceyear 2023 11 | workrawclm5input CTSM53_MODIS_CURRENT 12 | workrawclm5inputname CLM5_GEOG_DEG025 13 | workrawclm5inputyear 2005 14 | clm5modisrawinput CLM5_GEOG_DEG025 15 | clm5modisrawyear 2005 16 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_LUH3_SSP585_CMIP7_MERGE_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3ssp585allMERGEname CTSM53_LUH3_SSP585_CMIP7_ALL_MERGE 3 | workrawMERGEoutput CTSM53_LUH3_SSP585_CMIP7 4 | workrawMERGEoutputname MERGE_GEOG_DEG025 5 | workrawMERGEoutputstartyear 2023 6 | workrawMERGEoutputendyear 2100 7 | luh3rawinput LUH3_SSP585_CMIP7_GEOG_DEG025 8 | luh3rawstartyear 2023 9 | luh3rawendyear 2100 10 | luh3rawreferenceyear 2023 11 | workrawclm5input CTSM53_MODIS_CURRENT 12 | workrawclm5inputname CLM5_GEOG_DEG025 13 | workrawclm5inputyear 2005 14 | clm5modisrawinput CLM5_GEOG_DEG025 15 | clm5modisrawyear 2005 16 | -------------------------------------------------------------------------------- /worknamelist/worksurffile.txt: -------------------------------------------------------------------------------- 1 | CTSM53_MODIS_CURRENT 2005 2005 2 | CRU_321 2005 2005 3 | CTSM53_LUH3_HIST_CMIP7 1700 2023 4 | CTSM53_LUH3_SSP119_CMIP7 2023 2100 5 | CTSM53_LUH3_SSP126_CMIP7 2023 2100 6 | CTSM53_LUH3_SSP245_CMIP7 2023 2100 7 | CTSM53_LUH3_SSP370_CMIP7 2023 2100 8 | CTSM53_LUH3_SSP460_CMIP7 2023 2100 9 | CTSM53_LUH3_SSP585_CMIP7 2023 2100 10 | CTSM53_POTVEGINIT 2005 2005 11 | CTSM53_POTVEGCOMB 2005 2005 12 | CTSM53_POTVEGSCALED 2005 2005 13 | CTSM53_POTVEGRECOMB 2005 2005 14 | CTSM53_POTVEGMAX 2005 2005 15 | CTSM53_FORESTMAX 2005 2005 16 | -------------------------------------------------------------------------------- /tools/runcreateluh3modiscruclimatevegetationrawlutfile: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 4 ] 3 | then 4 | echo "Usage: runcreateluh3modiscruclimatevegetationrawlutfiles experimentname yearname landusename pftname" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | experimentname=${1} 19 | yearname=${2} 20 | landusename=${3} 21 | pftname=${4} 22 | 23 | processedannualhome="${luh3modiscrurawdir}/${experimentname}/" 24 | outputfilename="${processedannualhome}${experimentname}.${landusename}.${pftname}.globalclimatepct.${yearname}.data" 25 | 26 | python ${scriptdir}createluh3modiscruclimatevegetationrawlutfile.py ${experimentname} ${yearname} ${luh3modiscruexperimentfile} ${luh3surfdir} ${worksurfdir} ${landusename} ${luh3modiscrulandusefile} ${pftname} ${luh3modiscrupftfile} ${outputfilename} 27 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGCOMB_ALL_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | potvegallcombinedvcfname CTSM53_POTVEGCOMB_ALL_VCF 3 | workrawvcfoutput CTSM53_POTVEGCOMB 4 | workrawvcfoutputforestname FOREST_VCF_GEOG_DEG025 5 | workrawvcfoutputnonforestname NONFOREST_VCF_GEOG_DEG025 6 | workrawvcfoutputrangename RANGE_VCF_GEOG_DEG025 7 | workrawclm5input CTSM53_MODIS_CURRENT 8 | workrawclm5inputname CLM5_GEOG_DEG025 9 | workrawclm5inputyear 2005 10 | workrawvcfinput CTSM53_POTVEGINIT 11 | workrawvcfinputforestname FOREST_VCF_GEOG_DEG025 12 | workrawvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 13 | workrawvcfinputrangename RANGE_VCF_GEOG_DEG025 14 | workrawvcfinputyear 2005 15 | clm5currentrawinput CLM5_GEOG_DEG025 16 | clm5currentrawyear 2005 17 | -------------------------------------------------------------------------------- /tools/runcreateluh3allsurfdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3statefile luh3namelistfile" 5 | exit 6 | fi 7 | 8 | 9 | if [ -f ./ctsm53landuseprepconfig ]; 10 | then 11 | source ./ctsm53landuseprepconfig 12 | fi 13 | 14 | if [ -f ../ctsm53landuseprepconfig ]; 15 | then 16 | source ../ctsm53landuseprepconfig 17 | fi 18 | 19 | luh3namelistfile=${1} 20 | 21 | python ${scriptdir}createluh3statessurfdata.py ${luh3namelistfile} ${timeseriesrawfile} ${timeseriesrawdir} ${luh3rawfile} ${luh3rawdir} ${luh3variablefile} ${regionfile} ${luh3surffile} ${luh3surfdir} 22 | python ${scriptdir}createluh3transitionssurfdata.py ${luh3namelistfile} ${timeseriesrawfile} ${timeseriesrawdir} ${luh3rawfile} ${luh3rawdir} ${luh3variablefile} ${regionfile} ${luh3surffile} ${luh3surfdir} 23 | python ${scriptdir}createluh3managementsurfdata.py ${luh3namelistfile} ${timeseriesrawfile} ${timeseriesrawdir} ${luh3rawfile} ${luh3rawdir} ${luh3variablefile} ${regionfile} ${luh3surffile} ${luh3surfdir} 24 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_VCF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | currentextrapvcfpftname CTSM53_MODIS_CURRENT_EXTRAP_VCF_PFT 3 | workrawextrapoutput CTSM53_MODIS_CURRENT 4 | workrawextrapoutputtreename TREE_EXTRAP_GEOG_DEG025 5 | workrawextrapoutputherbname HERB_EXTRAP_GEOG_DEG025 6 | workrawextrapoutputgrassname GRASS_EXTRAP_GEOG_DEG025 7 | workrawclm5input CTSM53_MODIS_CURRENT 8 | workrawclm5inputname CLM5_GEOG_DEG025 9 | workrawclm5inputyear 2005 10 | workrawvcfinput CTSM53_POTVEGMAX 11 | workrawvcfinputforestname FOREST_VCF_GEOG_DEG025 12 | workrawvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 13 | workrawvcfinputrangename RANGE_VCF_GEOG_DEG025 14 | workrawvcfinputyear 2005 15 | clm5currentrawinput CLM5_GEOG_DEG025 16 | clm5modisyear 2005 17 | -------------------------------------------------------------------------------- /luh3modiscrunamelist/luh3modiscrulandusefile.txt: -------------------------------------------------------------------------------- 1 | forest 2 primf secdf 2 primf secdf 2 | nonforest 2 primn secdn 3 primn secdn range 3 | primf 1 primf 2 primf secdf 4 | secdf 1 secdf 2 primf secdf 5 | primn 1 primn 3 primn secdn range 6 | secdn 1 secdn 3 primn secdn range 7 | range 1 range 3 primn secdn range 8 | allveg 5 primf secdf primn secdn range 5 primf secdf primn secdn range 9 | allland 12 primf secdf primn secdn c3ann c4ann c3per c4per c3nfx pastr range urban 12 primf secdf primn secdn c3ann c4ann c3per c4per c3nfx pastr range urban 10 | -------------------------------------------------------------------------------- /tools/runcreateworkmergeallssprawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateworkmergeallssprawdata luh2allvcfmergenamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm52landuseprepconfig ]; 9 | then 10 | source ./ctsm52landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm52landuseprepconfig ]; 14 | then 15 | source ../ctsm52landuseprepconfig 16 | fi 17 | 18 | luh2allvcfmergenamelistfile=${1} 19 | 20 | ${bindir}createallmergesspLUH2CTSM52Deg025bin ${luh2rawfile} ${luh2rawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${worksspmergefile} SECDFFRACTREE ${luh2allvcfmergenamelistfile} 21 | ${bindir}createallmergesspLUH2CTSM52Deg025bin ${luh2rawfile} ${luh2rawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${worksspmergefile} SECDFFRACHERB ${luh2allvcfmergenamelistfile} 22 | ${bindir}createallmergesspLUH2CTSM52Deg025bin ${luh2rawfile} ${luh2rawdir} ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${worksspmergefile} SECDFFRACBARE ${luh2allvcfmergenamelistfile} 23 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_FORESTMAX_ALL_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | forestallmaxvcfname CTSM53_FORESTMAX_All_VCF 3 | workrawvcfoutput CTSM53_FORESTMAX 4 | workrawvcfoutputforestname FOREST_VCF_GEOG_DEG025 5 | workrawvcfoutputnonforestname NONFOREST_VCF_GEOG_DEG025 6 | workrawvcfoutputrangename RANGE_VCF_GEOG_DEG025 7 | workrawclm5input CTSM53_MODIS_CURRENT 8 | workrawclm5inputname CLM5_GEOG_DEG025 9 | workrawclm5inputyear 2005 10 | workrawmaxvcfinput CTSM53_POTVEGMAX 11 | workrawmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 12 | workrawmaxvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 13 | workrawmaxvcfinputrangename RANGE_VCF_GEOG_DEG025 14 | workrawmaxvcfinputyear 2005 15 | workrawmaxvcfinputmaxtreescale 1.4 16 | clm5modisrawinput CLM5_GEOG_DEG025 17 | clm5modisrawyear 2005 18 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGSCALED_ALL_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | potvegallscaledvcfname CTSM53_POTVEGSCALED_ALL_VCF 3 | workrawvcfoutput CTSM53_POTVEGSCALED 4 | workrawvcfoutputforestname FOREST_VCF_GEOG_DEG025 5 | workrawvcfoutputnonforestname NONFOREST_VCF_GEOG_DEG025 6 | workrawvcfoutputrangename RANGE_VCF_GEOG_DEG025 7 | luh2rawinput LUH3_HIST_CMIP7_GEOG_DEG025 8 | luh2rawyear 2005 9 | workrawclm5input CTSM53_MODIS_CURRENT 10 | workrawclm5inputname CLM5_GEOG_DEG025 11 | workrawclm5inputvcfname VCF_GEOG_DEG025 12 | workrawclm5inputyear 2005 13 | workrawvcfinput CTSM53_POTVEGCOMB 14 | workrawvcfinputforestname FOREST_VCF_GEOG_DEG025 15 | workrawvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 16 | workrawvcfinputrangename RANGE_VCF_GEOG_DEG025 17 | workrawvcfinputyear 2005 18 | clm5modisrawinput CLM5_GEOG_DEG025 19 | clm5modisrawyear 2005 20 | -------------------------------------------------------------------------------- /worknamelist/worksspmergefile.txt: -------------------------------------------------------------------------------- 1 | CTSM53_LUH3_SSP119_CMIP7 SECDFFRACTREE 2023 2100 1.8 2 | CTSM53_LUH3_SSP119_CMIP7 SECDFFRACHERB 2023 2100 1.8 3 | CTSM53_LUH3_SSP119_CMIP7 SECDFFRACBARE 2023 2100 1.8 4 | CTSM53_LUH3_SSP126_CMIP7 SECDFFRACTREE 2023 2100 1.8 5 | CTSM53_LUH3_SSP126_CMIP7 SECDFFRACHERB 2023 2100 1.8 6 | CTSM53_LUH3_SSP126_CMIP7 SECDFFRACBARE 2023 2100 1.8 7 | CTSM53_LUH3_SSP245_CMIP7 SECDFFRACTREE 2023 2100 1.8 8 | CTSM53_LUH3_SSP245_CMIP7 SECDFFRACHERB 2023 2100 1.8 9 | CTSM53_LUH3_SSP245_CMIP7 SECDFFRACBARE 2023 2100 1.8 10 | CTSM53_LUH3_SSP370_CMIP7 SECDFFRACTREE 2023 2100 1.8 11 | CTSM53_LUH3_SSP370_CMIP7 SECDFFRACHERB 2023 2100 1.8 12 | CTSM53_LUH3_SSP370_CMIP7 SECDFFRACBARE 2023 2100 1.8 13 | CTSM53_LUH3_SSP460_CMIP7 SECDFFRACTREE 2023 2100 1.8 14 | CTSM53_LUH3_SSP460_CMIP7 SECDFFRACHERB 2023 2100 1.8 15 | CTSM53_LUH3_SSP460_CMIP7 SECDFFRACBARE 2023 2100 1.8 16 | CTSM53_LUH3_SSP585_CMIP7 SECDFFRACTREE 2023 2100 1.8 17 | CTSM53_LUH3_SSP585_CMIP7 SECDFFRACHERB 2023 2100 1.8 18 | CTSM53_LUH3_SSP585_CMIP7 SECDFFRACBARE 2023 2100 1.8 19 | -------------------------------------------------------------------------------- /luh3modiscrunamelist/luh3modiscruclimatefile.txt: -------------------------------------------------------------------------------- 1 | CURRENT_FOREST_PCT_TREE LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.forest.PCT_TREE.txt 2005 2005 2 | CURRENT_FOREST_PCT_HERB LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.forest.PCT_HERB.txt 2005 2005 3 | CURRENT_FOREST_PCT_BARE LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.forest.PCT_BARE.txt 2005 2005 4 | CURRENT_NONFOREST_PCT_TREE LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.nonforest.PCT_TREE.txt 2005 2005 5 | CURRENT_NONFOREST_PCT_HERB LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.nonforest.PCT_HERB.txt 2005 2005 6 | CURRENT_NONFOREST_PCT_BARE LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.nonforest.PCT_BARE.txt 2005 2005 7 | CURRENT_RANGE_PCT_TREE LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.range.PCT_TREE.txt 2005 2005 8 | CURRENT_RANGE_PCT_HERB LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.range.PCT_HERB.txt 2005 2005 9 | CURRENT_RANGE_PCT_BARE LUH3_MODIS_CRU_HIST_CMIP7/currentclimate.range.PCT_BARE.txt 2005 2005 10 | -------------------------------------------------------------------------------- /worknamelist/CTSM53_POTVEGMAX_ALL_VCF_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | potvegallmaxvcfname CTSM53_POTVEGMAX_ALL_VCF 3 | workrawvcfoutput CTSM53_POTVEGMAX 4 | workrawvcfoutputforestname FOREST_VCF_GEOG_DEG025 5 | workrawvcfoutputnonforestname NONFOREST_VCF_GEOG_DEG025 6 | workrawvcfoutputrangename RANGE_VCF_GEOG_DEG025 7 | workrawclm5input CTSM53_MODIS_CURRENT 8 | workrawclm5inputname CLM5_GEOG_DEG025 9 | workrawclm5inputyear 2005 10 | workrawcombvcfinput CTSM53_POTVEGCOMB 11 | workrawcombvcfinputforestname FOREST_VCF_GEOG_DEG025 12 | workrawcombvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 13 | workrawcombvcfinputrangename RANGE_VCF_GEOG_DEG025 14 | workrawcombvcfinputyear 2005 15 | workrawscaledvcfinput CTSM53_POTVEGSCALED 16 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 17 | workrawscaledvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 18 | workrawscaledvcfinputrangename RANGE_VCF_GEOG_DEG025 19 | workrawscaledvcfinputyear 2005 20 | clm5modisrawinput CLM5_GEOG_DEG025 21 | clm5modisrawyear 2005 22 | -------------------------------------------------------------------------------- /worknamelist/workhistmergefile.txt: -------------------------------------------------------------------------------- 1 | CTSM53_LUH3_HIST_CMIP7 PRIMFFRACTREE 1850 2005 0.2 0.0 20.0 400.0 2 | CTSM53_LUH3_HIST_CMIP7 PRIMFFRACHERB 1850 2005 0.2 0.0 20.0 400.0 3 | CTSM53_LUH3_HIST_CMIP7 PRIMFFRACBARE 1850 2005 0.2 0.0 20.0 400.0 4 | CTSM53_LUH3_HIST_CMIP7 SECDFFRACTREE 1850 2005 0.0 0.0 20.0 400.0 5 | CTSM53_LUH3_HIST_CMIP7 SECDFFRACHERB 1850 2005 0.0 0.0 20.0 400.0 6 | CTSM53_LUH3_HIST_CMIP7 SECDFFRACBARE 1850 2005 0.0 0.0 20.0 400.0 7 | CTSM53_LUH3_HIST_CMIP7 PRIMNFRACTREE 1850 2005 0.1 0.0 35.0 500.0 8 | CTSM53_LUH3_HIST_CMIP7 PRIMNFRACHERB 1850 2005 0.1 0.0 35.0 500.0 9 | CTSM53_LUH3_HIST_CMIP7 PRIMNFRACBARE 1850 2005 0.1 0.0 35.0 500.0 10 | CTSM53_LUH3_HIST_CMIP7 SECDNFRACTREE 1850 2005 0.0 0.0 35.0 500.0 11 | CTSM53_LUH3_HIST_CMIP7 SECDNFRACHERB 1850 2005 0.0 0.0 35.0 500.0 12 | CTSM53_LUH3_HIST_CMIP7 SECDNFRACBARE 1850 2005 0.0 0.0 35.0 500.0 13 | CTSM53_LUH3_HIST_CMIP7 RANGEFRACTREE 1850 2005 0.0 0.0 35.0 500.0 14 | CTSM53_LUH3_HIST_CMIP7 RANGEFRACHERB 1850 2005 0.0 0.0 35.0 500.0 15 | CTSM53_LUH3_HIST_CMIP7 RANGEFRACBARE 1850 2005 0.0 0.0 35.0 500.0 16 | -------------------------------------------------------------------------------- /README.configure: -------------------------------------------------------------------------------- 1 | Instructions for Configuring the CTSM53 LUH3 Land Use Data Prep Tools 2 | 3 | 1. Download Toolset from GitHub 4 | 5 | 2. Compile all the C programs in the bin directory with make 6 | 7 | 3. Set the Land Use Data Prep Tools Home Directory for this instance 8 | 9 | ctsm53landuseprepconfig 10 | homedir="this directory" 11 | 12 | 4. Set timeseries raw data locations in: 13 | 14 | timeseriesnamelist/timeseriesrawfile.txt 15 | timeseriesnamelist/timeseriessurffile.txt 16 | 17 | 5. Set and create the luh3 raw and surface data locations in: 18 | 19 | luh3namelist/luh3rawfile.txt 20 | luh3namelist/luh3surffile.txt 21 | 22 | 6. Set and create the luh3 modis cru raw data locations in: 23 | 24 | luh3modiscrunamelist/luh3modiscruexperimentfile.txt 25 | luh3modiscrunamelist/luh3modiscruclimatefile.txt 26 | 27 | 7. Set and create the luh3 description raw and surface data locations in: 28 | 29 | luh3descnamelist/luh3descrawfile.txt 30 | luh3descnamelist/luh3descsurffile.txt 31 | 32 | 8. Set and create the working lut, climate, raw and surface data locations in: 33 | 34 | worknamelist/workrawfile.txt 35 | worknamelist/worksurffile.txt 36 | 37 | 9. Generate all the surface and data directories 38 | 39 | tools/runcreatetimeseriesdirs 40 | tools/runcreateluh3dirs 41 | tools/runcreateluh3modiscrudirs 42 | tools/runcreateluh3descdirs 43 | tools/runcreateworkdirs 44 | 45 | Set up completed. Now go to the README.process file. 46 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallprimfallpftname CTSM53_LUH3_HIST_CMIP7_DESC_PRIMF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawpftoutputprimfname PRIMF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawforestmaxvcfinput CTSM53_POTVEGMAX 9 | workrawforestmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawforestmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_HIST_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 1850 21 | workrawmergeinputendyear 2023 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_RANGE_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallrangeallpftname CTSM53_LUH3_HIST_CMIP7_DESC_RANGE_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawpftoutputrangename RANGE_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawforestmaxvcfinput CTSM53_POTVEGMAX 9 | workrawforestmaxvcfinputrangename RANGE_VCF_GEOG_DEG025 10 | workrawforestmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputrangename RANGE_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_HIST_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 1850 21 | workrawmergeinputendyear 2023 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdfallpftname CTSM53_LUH3_HIST_CMIP7_DESC_SECDF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawpftoutputsecdfname SECDF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawforestmaxvcfinput CTSM53_POTVEGMAX 9 | workrawforestmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawforestmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_HIST_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 1850 21 | workrawmergeinputendyear 2023 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP119_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdfallpftname CTSM53_LUH3_SSP119_CMIP7_DESC_SECDF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_SSP119_CMIP7 4 | luh3descrawpftoutputsecdfname SECDF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawpotvegmaxvcfinput CTSM53_FORESTMAX 9 | workrawpotvegmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawpotvegmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_SSP119_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 2023 21 | workrawmergeinputendyear 2100 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP126_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdfallpftname CTSM53_LUH3_SSP126_CMIP7_DESC_SECDF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_SSP126_CMIP7 4 | luh3descrawpftoutputsecdfname SECDF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawpotvegmaxvcfinput CTSM53_FORESTMAX 9 | workrawpotvegmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawpotvegmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_SSP126_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 2023 21 | workrawmergeinputendyear 2100 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP245_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdfallpftname CTSM53_LUH3_SSP245_CMIP7_DESC_SECDF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_SSP245_CMIP7 4 | luh3descrawpftoutputsecdfname SECDF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawpotvegmaxvcfinput CTSM53_FORESTMAX 9 | workrawpotvegmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawpotvegmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_SSP245_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 2023 21 | workrawmergeinputendyear 2100 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP370_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdfallpftname CTSM53_LUH3_SSP370_CMIP7_DESC_SECDF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_SSP370_CMIP7 4 | luh3descrawpftoutputsecdfname SECDF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawpotvegmaxvcfinput CTSM53_FORESTMAX 9 | workrawpotvegmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawpotvegmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_SSP370_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 2023 21 | workrawmergeinputendyear 2100 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP460_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdfallpftname CTSM53_LUH3_SSP460_CMIP7_DESC_SECDF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_SSP460_CMIP7 4 | luh3descrawpftoutputsecdfname SECDF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawpotvegmaxvcfinput CTSM53_FORESTMAX 9 | workrawpotvegmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawpotvegmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_SSP460_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 2023 21 | workrawmergeinputendyear 2100 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_SSP585_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdfallpftname CTSM53_LUH3_SSP585_CMIP7_DESC_SECDF_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_SSP585_CMIP7 4 | luh3descrawpftoutputsecdfname SECDF_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawpotvegmaxvcfinput CTSM53_FORESTMAX 9 | workrawpotvegmaxvcfinputforestname FOREST_VCF_GEOG_DEG025 10 | workrawpotvegmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputforestname FOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_SSP585_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 2023 21 | workrawmergeinputendyear 2100 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMN_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallprimnallpftname CTSM53_LUH3_HIST_CMIP7_DESC_PRIMN_ALL_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawpftoutputprimnname PRIMN_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawforestmaxvcfinput CTSM53_POTVEGMAX 9 | workrawforestmaxvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 10 | workrawforestmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_HIST_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 1850 21 | workrawmergeinputendyear 2023 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDN_PFT_generateallrawdata.txt: -------------------------------------------------------------------------------- 1 | author Peter Lawrence, lawrence@ucar.edu, NCAR, Terrestrial Sciences Section 2 | luh3descallsecdnallpftname CTSM53_LUH3_HIST_CMIP7_DESC_SECDN_All_PFT 3 | luh3descrawpftoutput CTSM53_LUH3_HIST_CMIP7 4 | luh3descrawpftoutputsecdnname SECDN_DESC_GEOG_DEG025 5 | workrawclm5input CTSM53_MODIS_CURRENT 6 | workrawclm5inputname CLM5_GEOG_DEG025 7 | workrawclm5inputyear 2005 8 | workrawforestmaxvcfinput CTSM53_POTVEGMAX 9 | workrawforestmaxvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 10 | workrawforestmaxvcfinputyear 2005 11 | workrawscaledvcfinput CTSM53_POTVEGSCALED 12 | workrawscaledvcfinputnonforestname NONFOREST_VCF_GEOG_DEG025 13 | workrawscaledvcfinputyear 2005 14 | workrawextrappftinput CTSM53_MODIS_CURRENT 15 | workrawextrappftinputtreename TREE_EXTRAP_GEOG_DEG025 16 | workrawextrappftinputherbname HERB_EXTRAP_GEOG_DEG025 17 | workrawextrappftinputyear 2005 18 | workrawmergeinput CTSM53_LUH3_HIST_CMIP7 19 | workrawmergeinputname MERGE_GEOG_DEG025 20 | workrawmergeinputstartyear 1850 21 | workrawmergeinputendyear 2023 22 | clm5modisrawinput CLM5_GEOG_DEG025 23 | clm5modisrawreferenceyear 2005 24 | -------------------------------------------------------------------------------- /tools/runcreateluh3modiscruclimatevegetationpotentiallutfile: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 10 ] 3 | then 4 | echo "Usage: runcreateluh3modiscruclimatevegetationpotentiallutfile experimentname yearname landusename pftname landuse1name landuse1weight landuse2name landuse2weight landuse3name landuse3weight" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | experimentname=${1} 19 | yearname=${2} 20 | landusename=${3} 21 | pftname=${4} 22 | landuse1name=${5} 23 | landuse1weight=${6} 24 | landuse2name=${7} 25 | landuse2weight=${8} 26 | landuse3name=${9} 27 | landuse3weight=${10} 28 | 29 | processedannualhome="${luh3modiscrurawdir}/${experimentname}/" 30 | 31 | landuse1filename="${processedannualhome}${experimentname}.${landuse1name}.globalclimatepct.${yearname}.data.csv" 32 | landuse2filename="${processedannualhome}${experimentname}.${landuse2name}.globalclimatepct.${yearname}.data.csv" 33 | landuse3filename="${processedannualhome}${experimentname}.${landuse3name}.globalclimatepct.${yearname}.data.csv" 34 | landuseallfilename="${processedannualhome}${experimentname}.allland.PCT_ALL.globalclimatepct.${yearname}.data.csv" 35 | outputfilename="${processedannualhome}${experimentname}.${landusename}.${pftname}.globalclimatepct.${yearname}.potentiallut.csv" 36 | 37 | python ${scriptdir}createluh3modiscruclimatevegetationpotentiallutfile.py ${landuse1filename} ${landuse1weight} ${landuse2filename} ${landuse2weight} ${landuse3filename} ${landuse3weight} ${landuseallfilename} ${outputfilename} 38 | -------------------------------------------------------------------------------- /tools/runcreateluh3modiscruclimatevegetationnormalizedlutfile: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 11 ] 3 | then 4 | echo "Usage: runcreateluh3modiscruclimatevegetationnormalizedlutfile experimentname yearname pft1in pft1climatemask pft1out pft2in pft2climatemask pft2out pft3in pft3climatemask pft3out" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | experimentname=${1} 19 | yearname=${2} 20 | pft1in=${3} 21 | pft1climatemask=${4} 22 | pft1out=${5} 23 | pft2in=${6} 24 | pft2climatemask=${7} 25 | pft2out=${8} 26 | pft3in=${9} 27 | pft3climatemask=${10} 28 | pft3out=${11} 29 | 30 | processedannualhome="${luh3modiscrurawdir}/${experimentname}/" 31 | 32 | pft1filename="${processedannualhome}${experimentname}.${pft1in}.globalclimatepct.${yearname}.potentiallut.csv" 33 | pft2filename="${processedannualhome}${experimentname}.${pft2in}.globalclimatepct.${yearname}.potentiallut.csv" 34 | pft3filename="${processedannualhome}${experimentname}.${pft3in}.globalclimatepct.${yearname}.potentiallut.csv" 35 | output1filename="${processedannualhome}${experimentname}.${pft1out}.globalclimatepct.${yearname}.potentialnormalized.csv" 36 | output2filename="${processedannualhome}${experimentname}.${pft2out}.globalclimatepct.${yearname}.potentialnormalized.csv" 37 | output3filename="${processedannualhome}${experimentname}.${pft3out}.globalclimatepct.${yearname}.potentialnormalized.csv" 38 | 39 | python ${scriptdir}createluh3modiscruclimatevegetationnormalizedlutfile.py ${pft1filename} ${pft1climatemask} ${pft2filename} ${pft2climatemask} ${pft3filename} ${pft3climatemask} ${output1filename} ${output2filename} ${output3filename} ${luh3modiscruclimatemask} 40 | -------------------------------------------------------------------------------- /tools/runcreateluh3modiscruclimatevegetationrefittedlutfile: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 11 ] 3 | then 4 | echo "Usage: runcreateluh3modiscruclimatevegetationrefittedlutfile experimentname yearname pft1in pft1climatemask pft1out pft2in pft2climatemask pft2out pft3in pft3climatemask pft3out" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | experimentname=${1} 19 | yearname=${2} 20 | pft1in=${3} 21 | pft1climatemask=${4} 22 | pft1out=${5} 23 | pft2in=${6} 24 | pft2climatemask=${7} 25 | pft2out=${8} 26 | pft3in=${9} 27 | pft3climatemask=${10} 28 | pft3out=${11} 29 | 30 | processedannualhome="${luh3modiscrurawdir}/${experimentname}/" 31 | 32 | pft1filename="${processedannualhome}${experimentname}.${pft1in}.globalclimatepct.${yearname}.potentialnormalized.csv" 33 | pft2filename="${processedannualhome}${experimentname}.${pft2in}.globalclimatepct.${yearname}.potentialnormalized.csv" 34 | pft3filename="${processedannualhome}${experimentname}.${pft3in}.globalclimatepct.${yearname}.potentialnormalized.csv" 35 | output1filename="${processedannualhome}${experimentname}.${pft1out}.globalclimatepct.${yearname}.potentialrefitted.csv" 36 | output2filename="${processedannualhome}${experimentname}.${pft2out}.globalclimatepct.${yearname}.potentialrefitted.csv" 37 | output3filename="${processedannualhome}${experimentname}.${pft3out}.globalclimatepct.${yearname}.potentialrefitted.csv" 38 | 39 | python ${scriptdir}createluh3modiscruclimatevegetationrefittedlutfile.py ${pft1filename} ${pft1climatemask} ${pft2filename} ${pft2climatemask} ${pft3filename} ${pft3climatemask} ${output1filename} ${output2filename} ${output3filename} ${luh3modiscruclimatemask} 40 | -------------------------------------------------------------------------------- /tools/runcreateluh3modiscruclimatevegetationfinallutfile: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 2 ] 3 | then 4 | echo "Usage: runcreateluh3modiscruclimatevegetationrefittedlutfile experimentname yearname" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | experimentname=${1} 19 | yearname=${2} 20 | 21 | pft1name="forest.PCT_TREE" 22 | pft2name="forest.PCT_HERB" 23 | pft3name="forest.PCT_BARE" 24 | pft4name="nonforest.PCT_TREE" 25 | pft5name="nonforest.PCT_HERB" 26 | pft6name="nonforest.PCT_BARE" 27 | pft7name="range.PCT_TREE" 28 | pft8name="range.PCT_HERB" 29 | pft9name="range.PCT_BARE" 30 | 31 | processedannualhome="${luh3modiscrurawdir}/${experimentname}/" 32 | 33 | pft1filename="${processedannualhome}${experimentname}.${pft1name}.globalclimatepct.${yearname}" 34 | pft2filename="${processedannualhome}${experimentname}.${pft2name}.globalclimatepct.${yearname}" 35 | pft3filename="${processedannualhome}${experimentname}.${pft3name}.globalclimatepct.${yearname}" 36 | pft4filename="${processedannualhome}${experimentname}.${pft4name}.globalclimatepct.${yearname}" 37 | pft5filename="${processedannualhome}${experimentname}.${pft5name}.globalclimatepct.${yearname}" 38 | pft6filename="${processedannualhome}${experimentname}.${pft6name}.globalclimatepct.${yearname}" 39 | pft7filename="${processedannualhome}${experimentname}.${pft7name}.globalclimatepct.${yearname}" 40 | pft8filename="${processedannualhome}${experimentname}.${pft8name}.globalclimatepct.${yearname}" 41 | pft9filename="${processedannualhome}${experimentname}.${pft9name}.globalclimatepct.${yearname}" 42 | 43 | # module load lang/python/2.7.14 44 | 45 | python ${scriptdir}createluh3modiscruclimatevegetationfinallutfile.py ${pft1filename} ${pft2filename} ${pft3filename} ${pft4filename} ${pft5filename} ${pft6filename} ${pft7filename} ${pft8filename} ${pft9filename} 46 | -------------------------------------------------------------------------------- /luh3descnamelist/luh3desccropparamfile.txt: -------------------------------------------------------------------------------- 1 | 0 REPLF 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 Generic_C3 2 | 1 C4ANN 1.25 0.5 0.0 0.0 1.0 0.1 0.0 0.0 Temperate_Corn 3 | 2 C3ANN 1.0 0.0 0.0 0.0 0.7 0.0 0.0 0.0 Spring_Wheat 4 | 3 C3ANN 1.0 0.0 0.0 0.0 0.7 0.0 0.0 0.0 Winter_Wheat 5 | 4 C3NFX 1.0 0.25 0.0 0.0 1.0 0.25 0.0 0.0 Temperate_Soybean 6 | 5 C3ANN 1.0 0.0 0.0 0.0 0.65 0.0 0.0 0.0 Barley 7 | 6 C3ANN 1.0 0.0 0.0 0.0 0.65 0.0 0.0 0.0 Winter_Barley 8 | 7 C3ANN 1.0 0.0 0.0 0.0 0.75 0.0 0.0 0.0 Rye 9 | 8 C3ANN 1.0 0.0 0.0 0.0 0.75 0.0 0.0 0.0 Winter_Rye 10 | 9 C3ANN 1.0 0.0 0.0 0.0 0.75 0.0 0.0 0.0 Cassava 11 | 10 C3PER 1.0 0.0 0.0 0.0 0.4 0.0 0.0 0.0 Citrus 12 | 11 C3PER 1.0 0.0 0.0 0.0 0.7 0.0 0.0 0.0 Cocoa 13 | 12 C3PER 1.0 0.0 0.0 0.0 0.45 0.0 0.0 0.0 Coffee 14 | 13 C3ANN 1.0 0.0 0.0 0.0 0.8 0.0 0.0 0.0 Cotton 15 | 14 C3PER 1.0 0.0 0.0 0.0 0.55 0.0 0.0 0.0 Datepalm 16 | 15 C3ANN 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 Foddergrass 17 | 16 C3PER 1.0 0.0 0.0 0.0 0.4 0.0 0.0 0.0 Grapes 18 | 17 C3NFX 1.0 0.0 0.0 0.0 0.95 0.0 0.0 0.0 Groundnuts 19 | 18 C4ANN 1.0 0.25 0.0 0.0 1.0 0.25 0.0 0.0 Millet 20 | 19 C3PER 1.0 0.0 0.0 0.0 0.65 0.0 0.0 0.0 Oilpalm 21 | 20 C3ANN 1.0 0.0 0.0 0.0 0.8 0.0 0.0 0.0 Potatoes 22 | 21 C3NFX 1.0 0.0 0.0 0.0 0.85 0.0 0.0 0.0 Pulses 23 | 22 C3ANN 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 Rapeseed 24 | 23 C3ANN 1.5 1.0 0.25 0.0 1.0 1.0 0.25 0.0 Rice 25 | 24 C4ANN 1.0 0.1 0.0 0.0 1.0 0.1 0.0 0.0 Sorghum 26 | 25 C3ANN 1.0 0.0 0.0 0.0 0.85 0.0 0.0 0.0 Sugarbeet 27 | 26 C4PER 1.0 1.0 1.0 0.0 1.0 0.25 0.1 0.0 Sugarcane 28 | 27 C3ANN 1.0 0.0 0.0 0.0 0.65 0.0 0.0 0.0 Sunflower 29 | 28 C4PER 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Miscanthus 30 | 29 C4PER 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 Switchgrass 31 | 30 C4ANN 1.25 0.5 0.0 0.0 1.0 0.1 0.0 0.0 Tropical_Corn 32 | 31 C3NFX 1.0 0.25 0.0 0.0 1.0 0.25 0.0 0.0 Tropical_Soybean 33 | -------------------------------------------------------------------------------- /ctsm53landuseprepconfig: -------------------------------------------------------------------------------- 1 | 2 | # Home Directory. Only set this line 3 | homedir="/" 4 | 5 | # All other Directories and Files are relative to the Home Directory 6 | toolsdir="${homedir}tools/" 7 | scriptdir="${homedir}script/" 8 | bindir="${homedir}bin/" 9 | 10 | timeseriesnamelistdir="${homedir}timeseriesnamelist/" 11 | timeseriesrawdir="/project/ccis/lawrence/clm5timeseriesdata/" 12 | timeseriessurfdir="${homedir}timeseriessurfdata/" 13 | timeseriesrawfile="${timeseriesnamelistdir}timeseriesrawfile.txt" 14 | timeseriessurffile="${timeseriesnamelistdir}timeseriessurffile.txt" 15 | 16 | luh3namelistdir="${homedir}luh3namelist/" 17 | luh3rawdir="/project/ccis/lawrence/luh3timeseriesdata/" 18 | luh3surfdir="${homedir}luh3surfdata/" 19 | luh3rawfile="${luh3namelistdir}luh3rawfile.txt" 20 | luh3surffile="${luh3namelistdir}luh3surffile.txt" 21 | luh3variablefile="${luh3namelistdir}luh3variablelist.txt" 22 | 23 | luh3modiscrunamelistdir="${homedir}luh3modiscrunamelist/" 24 | luh3modiscrurawdir="${homedir}luh3modiscrurawdata/" 25 | luh3modiscrurawfile="${luh3modiscrunamelistdir}luh3modiscrurawfile.txt" 26 | luh3modiscruexperimentfile="${luh3modiscrunamelistdir}luh3modiscruexperimentfile.txt" 27 | luh3modiscrulandusefile="${luh3modiscrunamelistdir}luh3modiscrulandusefile.txt" 28 | luh3modiscrupftfile="${luh3modiscrunamelistdir}luh3modiscrupftfile.txt" 29 | luh3modiscruclimatefile="${luh3modiscrunamelistdir}luh3modiscruclimatefile.txt" 30 | luh3modiscruclimatemask="${luh3modiscrunamelistdir}luh3modiscruclimatemask.txt" 31 | 32 | luh3descnamelistdir="${homedir}luh3descnamelist/" 33 | luh3descrawdir="${homedir}luh3descrawdata/" 34 | luh3descsurfdir="${homedir}luh3descsurfdata/" 35 | luh3descrawfile="${luh3descnamelistdir}luh3descrawfile.txt" 36 | luh3descsurffile="${luh3descnamelistdir}luh3descsurffile.txt" 37 | luh3desccropparamfile="${luh3descnamelistdir}luh3desccropparamfile.txt" 38 | 39 | worknamelistdir="${homedir}worknamelist/" 40 | workrawdir="${homedir}workrawdata/" 41 | worksurfdir="${homedir}worksurfdata/" 42 | workrawfile="${worknamelistdir}workrawfile.txt" 43 | worksurffile="${worknamelistdir}worksurffile.txt" 44 | workhistmergefile="${worknamelistdir}workhistmergefile.txt" 45 | worksspmergefile="${worknamelistdir}worksspmergefile.txt" 46 | 47 | regiondir="${homedir}regions/" 48 | regionfile="${regiondir}global025.txt" 49 | -------------------------------------------------------------------------------- /tools/runcreateluh3descdirs: -------------------------------------------------------------------------------- 1 | 2 | if [ -f ./ctsm53landuseprepconfig ]; 3 | then 4 | source ./ctsm53landuseprepconfig 5 | fi 6 | 7 | if [ -f ../ctsm53landuseprepconfig ]; 8 | then 9 | source ../ctsm53landuseprepconfig 10 | fi 11 | 12 | if [ -d ${luh3descrawdir} ]; 13 | then 14 | echo "LUH3Desc Raw Directory ${luh3descrawdir} Already Exists" 15 | else 16 | mkdir ${luh3descrawdir} 17 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7 18 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/PRIMF_DESC_GEOG_DEG025 19 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/PRIMN_DESC_GEOG_DEG025 20 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/SECDF_DESC_GEOG_DEG025 21 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/SECDN_DESC_GEOG_DEG025 22 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/RANGE_DESC_GEOG_DEG025 23 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/PASTR_DESC_GEOG_DEG025 24 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/C3ANN_DESC_GEOG_DEG025 25 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/C4ANN_DESC_GEOG_DEG025 26 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/C3PER_DESC_GEOG_DEG025 27 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/C4PER_DESC_GEOG_DEG025 28 | mkdir ${luh3descrawdir}CTSM53_LUH3_HIST_CMIP7/C3NFX_DESC_GEOG_DEG025 29 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP119_CMIP7 30 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP119_CMIP7/SECDF_DESC_GEOG_DEG025 31 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP126_CMIP7 32 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP126_CMIP7/SECDF_DESC_GEOG_DEG025 33 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP245_CMIP7 34 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP245_CMIP7/SECDF_DESC_GEOG_DEG025 35 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP370_CMIP7 36 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP370_CMIP7/SECDF_DESC_GEOG_DEG025 37 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP460_CMIP7 38 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP460_CMIP7/SECDF_DESC_GEOG_DEG025 39 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP585_CMIP7 40 | mkdir ${luh3descrawdir}CTSM53_LUH3_SSP585_CMIP7/SECDF_DESC_GEOG_DEG025 41 | fi 42 | 43 | if [ -d ${luh3descsurfdir} ]; 44 | then 45 | echo "LUH2Desc Surface Directory ${luh3descsurfdir} Already Exists" 46 | else 47 | mkdir ${luh3descsurfdir} 48 | mkdir ${luh3descsurfdir}CTSM53_LUH3_HIST_CMIP7 49 | mkdir ${luh3descsurfdir}CTSM53_LUH3_SSP119_CMIP7 50 | mkdir ${luh3descsurfdir}CTSM53_LUH3_SSP126_CMIP7 51 | mkdir ${luh3descsurfdir}CTSM53_LUH3_SSP245_CMIP7 52 | mkdir ${luh3descsurfdir}CTSM53_LUH3_SSP370_CMIP7 53 | mkdir ${luh3descsurfdir}CTSM53_LUH3_SSP460_CMIP7 54 | mkdir ${luh3descsurfdir}CTSM53_LUH3_SSP585_CMIP7 55 | fi 56 | -------------------------------------------------------------------------------- /tools/runcreateworkmergeallhistoricalrawdata: -------------------------------------------------------------------------------- 1 | 2 | if [ ${#} -ne 1 ] 3 | then 4 | echo "Usage: runcreateluh3mergeallhistoricalrawdata luh3allvcfmergenamelistfile" 5 | exit 6 | fi 7 | 8 | if [ -f ./ctsm53landuseprepconfig ]; 9 | then 10 | source ./ctsm53landuseprepconfig 11 | fi 12 | 13 | if [ -f ../ctsm53landuseprepconfig ]; 14 | then 15 | source ../ctsm53landuseprepconfig 16 | fi 17 | 18 | luh3allvcfmergenamelistfile=${1} 19 | 20 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} PRIMFFRACTREE ${luh3allvcfmergenamelistfile} 21 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} PRIMFFRACHERB ${luh3allvcfmergenamelistfile} 22 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} PRIMFFRACBARE ${luh3allvcfmergenamelistfile} 23 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} SECDFFRACTREE ${luh3allvcfmergenamelistfile} 24 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} SECDFFRACHERB ${luh3allvcfmergenamelistfile} 25 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} SECDFFRACBARE ${luh3allvcfmergenamelistfile} 26 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} PRIMNFRACTREE ${luh3allvcfmergenamelistfile} 27 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} PRIMNFRACHERB ${luh3allvcfmergenamelistfile} 28 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} PRIMNFRACBARE ${luh3allvcfmergenamelistfile} 29 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} SECDNFRACTREE ${luh3allvcfmergenamelistfile} 30 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} SECDNFRACHERB ${luh3allvcfmergenamelistfile} 31 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} SECDNFRACBARE ${luh3allvcfmergenamelistfile} 32 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} RANGEFRACTREE ${luh3allvcfmergenamelistfile} 33 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} RANGEFRACHERB ${luh3allvcfmergenamelistfile} 34 | ${bindir}createallmergehistoricalLUH3CTSM53Deg025bin ${timeseriesrawfile} ${timeseriesrawdir} ${workrawfile} ${workrawdir} ${workhistmergefile} RANGEFRACBARE ${luh3allvcfmergenamelistfile} 35 | -------------------------------------------------------------------------------- /luh3namelist/luh3variablelist.txt: -------------------------------------------------------------------------------- 1 | LANDMASK LANDMASK F 1 2 | LANDFRAC LANDFRAC F 1 3 | AREA AREA F 1 4 | PCT_GLACIER PCTGLACIER F 1 5 | PCT_LAKE PCTLAKE F 1 6 | PCT_WETLAND PCTWETLAND F 1 7 | primf primf S 1 8 | primn primn S 1 9 | secdf secdf S 1 10 | secdn secdn S 1 11 | c3ann c3ann S 1 12 | c4ann c4ann S 1 13 | c3per c3per S 1 14 | c4per c4per S 1 15 | c3nfx c3nfx S 1 16 | pastr pastr S 1 17 | range range S 1 18 | urban urban S 1 19 | primf_harv primf_harv T 1 20 | primn_harv primn_harv T 1 21 | secmf_harv secmf_harv T 1 22 | secyf_harv secyf_harv T 1 23 | secnf_harv secnf_harv T 1 24 | primf_bioh primf_bioh T 1 25 | primn_bioh primn_bioh T 1 26 | secmf_bioh secmf_bioh T 1 27 | secyf_bioh secyf_bioh T 1 28 | secnf_bioh secnf_bioh T 1 29 | c3ann_to_secdf c3ann_to_secdf T 1 30 | c4ann_to_secdf c4ann_to_secdf T 1 31 | c3per_to_secdf c3per_to_secdf T 1 32 | c4per_to_secdf c4per_to_secdf T 1 33 | c3nfx_to_secdf c3nfx_to_secdf T 1 34 | secdn_to_secdf secdn_to_secdf T 1 35 | pastr_to_secdf pastr_to_secdf T 1 36 | range_to_secdf range_to_secdf T 1 37 | urban_to_secdf urban_to_secdf T 1 38 | secdf_to_secdn secdf_to_secdn T 1 39 | secdf_to_pastr secdf_to_pastr T 1 40 | secdf_to_range secdf_to_range T 1 41 | secdf_to_urban secdf_to_urban T 1 42 | c3ann_to_secdn c3ann_to_secdn T 1 43 | c4ann_to_secdn c4ann_to_secdn T 1 44 | c3per_to_secdn c3per_to_secdn T 1 45 | c4per_to_secdn c4per_to_secdn T 1 46 | c3nfx_to_secdn c3nfx_to_secdn T 1 47 | pastr_to_secdn pastr_to_secdn T 1 48 | range_to_secdn range_to_secdn T 1 49 | urban_to_secdn urban_to_secdn T 1 50 | secdn_to_pastr secdn_to_pastr T 1 51 | secdn_to_range secdn_to_range T 1 52 | secdn_to_urban secdn_to_urban T 1 53 | irrig_c3ann irrig_c3ann M 1 54 | irrig_c4ann irrig_c4ann M 1 55 | irrig_c3per irrig_c3per M 1 56 | irrig_c4per irrig_c4per M 1 57 | irrig_c3nfx irrig_c3nfx M 1 58 | fertl_c3ann fertl_c3ann M 1 59 | fertl_c4ann fertl_c4ann M 1 60 | fertl_c3per fertl_c3per M 1 61 | fertl_c4per fertl_c4per M 1 62 | fertl_c3nfx fertl_c3nfx M 1 63 | -------------------------------------------------------------------------------- /tools/runcreateworkdirs: -------------------------------------------------------------------------------- 1 | 2 | if [ -f ./ctsm53landuseprepconfig ]; 3 | then 4 | source ./ctsm53landuseprepconfig 5 | fi 6 | 7 | if [ -f ../ctsm53landuseprepconfig ]; 8 | then 9 | source ../ctsm53landuseprepconfig 10 | fi 11 | 12 | if [ -d ${workrawdir} ]; 13 | then 14 | echo "Work Raw Directory ${workrawdir} Already Exists" 15 | else 16 | mkdir ${workrawdir} 17 | mkdir ${workrawdir}CTSM53_MODIS_CURRENT 18 | mkdir ${workrawdir}CTSM53_MODIS_CURRENT/CLM5_GEOG_DEG025 19 | mkdir ${workrawdir}CTSM53_MODIS_CURRENT/VCF_GEOG_DEG025 20 | mkdir ${workrawdir}CTSM53_MODIS_CURRENT/TREE_EXTRAP_GEOG_DEG025 21 | mkdir ${workrawdir}CTSM53_MODIS_CURRENT/HERB_EXTRAP_GEOG_DEG025 22 | mkdir ${workrawdir}CTSM53_MODIS_CURRENT/GRASS_EXTRAP_GEOG_DEG025 23 | mkdir ${workrawdir}CTSM53_POTVEGINIT 24 | mkdir ${workrawdir}CTSM53_POTVEGINIT/FOREST_VCF_GEOG_DEG025 25 | mkdir ${workrawdir}CTSM53_POTVEGINIT/NONFOREST_VCF_GEOG_DEG025 26 | mkdir ${workrawdir}CTSM53_POTVEGINIT/RANGE_VCF_GEOG_DEG025 27 | mkdir ${workrawdir}CTSM53_POTVEGCOMB 28 | mkdir ${workrawdir}CTSM53_POTVEGCOMB/FOREST_VCF_GEOG_DEG025 29 | mkdir ${workrawdir}CTSM53_POTVEGCOMB/NONFOREST_VCF_GEOG_DEG025 30 | mkdir ${workrawdir}CTSM53_POTVEGCOMB/RANGE_VCF_GEOG_DEG025 31 | mkdir ${workrawdir}CTSM53_POTVEGSCALED 32 | mkdir ${workrawdir}CTSM53_POTVEGSCALED/FOREST_VCF_GEOG_DEG025 33 | mkdir ${workrawdir}CTSM53_POTVEGSCALED/NONFOREST_VCF_GEOG_DEG025 34 | mkdir ${workrawdir}CTSM53_POTVEGSCALED/RANGE_VCF_GEOG_DEG025 35 | mkdir ${workrawdir}CTSM53_POTVEGMAX 36 | mkdir ${workrawdir}CTSM53_POTVEGMAX/FOREST_VCF_GEOG_DEG025 37 | mkdir ${workrawdir}CTSM53_POTVEGMAX/NONFOREST_VCF_GEOG_DEG025 38 | mkdir ${workrawdir}CTSM53_POTVEGMAX/RANGE_VCF_GEOG_DEG025 39 | mkdir ${workrawdir}CTSM53_FORESTMAX 40 | mkdir ${workrawdir}CTSM53_FORESTMAX/FOREST_VCF_GEOG_DEG025 41 | mkdir ${workrawdir}CTSM53_FORESTMAX/NONFOREST_VCF_GEOG_DEG025 42 | mkdir ${workrawdir}CTSM53_FORESTMAX/RANGE_VCF_GEOG_DEG025 43 | mkdir ${workrawdir}CTSM53_LUH3_HIST_CMIP7 44 | mkdir ${workrawdir}CTSM53_LUH3_HIST_CMIP7/MERGE_GEOG_DEG025 45 | mkdir ${workrawdir}CTSM53_LUH3_SSP119_CMIP7 46 | mkdir ${workrawdir}CTSM53_LUH3_SSP119_CMIP7/MERGE_GEOG_DEG025 47 | mkdir ${workrawdir}CTSM53_LUH3_SSP126_CMIP7 48 | mkdir ${workrawdir}CTSM53_LUH3_SSP126_CMIP7/MERGE_GEOG_DEG025 49 | mkdir ${workrawdir}CTSM53_LUH3_SSP245_CMIP7 50 | mkdir ${workrawdir}CTSM53_LUH3_SSP245_CMIP7/MERGE_GEOG_DEG025 51 | mkdir ${workrawdir}CTSM53_LUH3_SSP370_CMIP7 52 | mkdir ${workrawdir}CTSM53_LUH3_SSP370_CMIP7/MERGE_GEOG_DEG025 53 | mkdir ${workrawdir}CTSM53_LUH3_SSP460_CMIP7 54 | mkdir ${workrawdir}CTSM53_LUH3_SSP460_CMIP7/MERGE_GEOG_DEG025 55 | mkdir ${workrawdir}CTSM53_LUH3_SSP585_CMIP7 56 | mkdir ${workrawdir}CTSM53_LUH3_SSP585_CMIP7/MERGE_GEOG_DEG025 57 | fi 58 | 59 | if [ -d ${worksurfdir} ]; 60 | then 61 | echo "Work Surface Directory ${worksurfdir} Already Exists" 62 | else 63 | mkdir ${worksurfdir} 64 | mkdir ${worksurfdir}CTSM53_MODIS_CURRENT 65 | mkdir ${worksurfdir}CRU_321 66 | mkdir ${worksurfdir}CTSM53_LUH3_HIST_CMIP7 67 | mkdir ${worksurfdir}CTSM53_LUH3_SSP119_CMIP7 68 | mkdir ${worksurfdir}CTSM53_LUH3_SSP126_CMIP7 69 | mkdir ${worksurfdir}CTSM53_LUH3_SSP245_CMIP7 70 | mkdir ${worksurfdir}CTSM53_LUH3_SSP370_CMIP7 71 | mkdir ${worksurfdir}CTSM53_LUH3_SSP460_CMIP7 72 | mkdir ${worksurfdir}CTSM53_LUH3_SSP585_CMIP7 73 | mkdir ${worksurfdir}CTSM53_POTVEGINIT 74 | mkdir ${worksurfdir}CTSM53_POTVEGCOMB 75 | mkdir ${worksurfdir}CTSM53_POTVEGSCALED 76 | mkdir ${worksurfdir}CTSM53_POTVEGRECOMB 77 | mkdir ${worksurfdir}CTSM53_POTVEGMAX 78 | mkdir ${worksurfdir}CTSM53_FORESTMAX 79 | fi 80 | -------------------------------------------------------------------------------- /bin/Makefile: -------------------------------------------------------------------------------- 1 | all: createallcurrentLUH3CTSM53Deg025bin createallpotvegvcfcurrentLUH3CTSM53Deg025bin createforestpotvegvcfinitialLUH3CTSM53Deg025bin createnonforestpotvegvcfinitialLUH3CTSM53Deg025bin createrangepotvegvcfinitialLUH3CTSM53Deg025bin createallpotvegvcfcombinedLUH3CTSM53Deg025bin createallpotvegvcfscaledLUH3CTSM53Deg025bin createallpotvegvcfmaxLUH3CTSM53Deg025bin createallforestvcfmaxLUH3CTSM53Deg025bin createallmergehistoricalLUH3CTSM53Deg025bin createallextrapvcfpftLUH3CTSM53Deg025bin createalldescprimfLUH3CTSM53Deg025bin createalldescsecdfLUH3CTSM53Deg025bin createalldescprimnLUH3CTSM53Deg025bin createalldescsecdnLUH3CTSM53Deg025bin createalldescrangeLUH3CTSM53Deg025bin createalldescpastrLUH3CTSM53Deg025bin createalldescc3annLUH3CTSM53Deg025bin createalldescc4annLUH3CTSM53Deg025bin createalldescc3perLUH3CTSM53Deg025bin createalldescc4perLUH3CTSM53Deg025bin createalldescc3nfxLUH3CTSM53Deg025bin createallmergesspLUH3CTSM53Deg025bin 2 | 3 | # Check for the netcdf library and include directories 4 | ifeq ($(LIB_NETCDF),$(null)) 5 | LIB_NETCDF := $(NETCDF_PATH)/lib 6 | endif 7 | 8 | ifeq ($(INC_NETCDF),$(null)) 9 | INC_NETCDF := $(NETCDF_PATH)/include 10 | endif 11 | 12 | ifeq ($(MOD_NETCDF),$(null)) 13 | MOD_NETCDF := $(LIB_NETCDF) 14 | endif 15 | 16 | createallcurrentLUH3CTSM53Deg025bin: ../src/createallcurrentLUH3CTSM53Deg025bin.c 17 | gcc -o createallcurrentLUH3CTSM53Deg025bin ../src/createallcurrentLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 18 | 19 | createallpotvegvcfcurrentLUH3CTSM53Deg025bin: ../src/createallpotvegvcfcurrentLUH3CTSM53Deg025bin.c 20 | gcc -o createallpotvegvcfcurrentLUH3CTSM53Deg025bin ../src/createallpotvegvcfcurrentLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 21 | 22 | createforestpotvegvcfinitialLUH3CTSM53Deg025bin: ../src/createforestpotvegvcfinitialLUH3CTSM53Deg025bin.c 23 | gcc -o createforestpotvegvcfinitialLUH3CTSM53Deg025bin ../src/createforestpotvegvcfinitialLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 24 | 25 | createnonforestpotvegvcfinitialLUH3CTSM53Deg025bin: ../src/createnonforestpotvegvcfinitialLUH3CTSM53Deg025bin.c 26 | gcc -o createnonforestpotvegvcfinitialLUH3CTSM53Deg025bin ../src/createnonforestpotvegvcfinitialLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 27 | 28 | createrangepotvegvcfinitialLUH3CTSM53Deg025bin: ../src/createrangepotvegvcfinitialLUH3CTSM53Deg025bin.c 29 | gcc -o createrangepotvegvcfinitialLUH3CTSM53Deg025bin ../src/createrangepotvegvcfinitialLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 30 | 31 | createallpotvegvcfcombinedLUH3CTSM53Deg025bin: ../src/createallpotvegvcfcombinedLUH3CTSM53Deg025bin.c 32 | gcc -o createallpotvegvcfcombinedLUH3CTSM53Deg025bin ../src/createallpotvegvcfcombinedLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 33 | 34 | createallpotvegvcfscaledLUH3CTSM53Deg025bin: ../src/createallpotvegvcfscaledLUH3CTSM53Deg025bin.c 35 | gcc -o createallpotvegvcfscaledLUH3CTSM53Deg025bin ../src/createallpotvegvcfscaledLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 36 | 37 | createallpotvegvcfmaxLUH3CTSM53Deg025bin: ../src/createallpotvegvcfmaxLUH3CTSM53Deg025bin.c 38 | gcc -o createallpotvegvcfmaxLUH3CTSM53Deg025bin ../src/createallpotvegvcfmaxLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 39 | 40 | createallforestvcfmaxLUH3CTSM53Deg025bin: ../src/createallforestvcfmaxLUH3CTSM53Deg025bin.c 41 | gcc -o createallforestvcfmaxLUH3CTSM53Deg025bin ../src/createallforestvcfmaxLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 42 | 43 | createallmergehistoricalLUH3CTSM53Deg025bin: ../src/createallmergehistoricalLUH3CTSM53Deg025bin.c 44 | gcc -o createallmergehistoricalLUH3CTSM53Deg025bin ../src/createallmergehistoricalLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 45 | 46 | createallextrapvcfpftLUH3CTSM53Deg025bin: ../src/createallextrapvcfpftLUH3CTSM53Deg025bin.c 47 | gcc -o createallextrapvcfpftLUH3CTSM53Deg025bin ../src/createallextrapvcfpftLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 48 | 49 | createalldescprimfLUH3CTSM53Deg025bin: ../src/createalldescprimfLUH3CTSM53Deg025bin.c 50 | gcc -o createalldescprimfLUH3CTSM53Deg025bin ../src/createalldescprimfLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 51 | 52 | createalldescsecdfLUH3CTSM53Deg025bin: ../src/createalldescsecdfLUH3CTSM53Deg025bin.c 53 | gcc -o createalldescsecdfLUH3CTSM53Deg025bin ../src/createalldescsecdfLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 54 | 55 | createalldescprimnLUH3CTSM53Deg025bin: ../src/createalldescprimnLUH3CTSM53Deg025bin.c 56 | gcc -o createalldescprimnLUH3CTSM53Deg025bin ../src/createalldescprimnLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 57 | 58 | createalldescsecdnLUH3CTSM53Deg025bin: ../src/createalldescsecdnLUH3CTSM53Deg025bin.c 59 | gcc -o createalldescsecdnLUH3CTSM53Deg025bin ../src/createalldescsecdnLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 60 | 61 | createalldescrangeLUH3CTSM53Deg025bin: ../src/createalldescrangeLUH3CTSM53Deg025bin.c 62 | gcc -o createalldescrangeLUH3CTSM53Deg025bin ../src/createalldescrangeLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 63 | 64 | createalldescpastrLUH3CTSM53Deg025bin: ../src/createalldescpastrLUH3CTSM53Deg025bin.c 65 | gcc -o createalldescpastrLUH3CTSM53Deg025bin ../src/createalldescpastrLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 66 | 67 | createalldescc3annLUH3CTSM53Deg025bin: ../src/createalldescc3annLUH3CTSM53Deg025bin.c 68 | gcc -o createalldescc3annLUH3CTSM53Deg025bin ../src/createalldescc3annLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 69 | 70 | createalldescc4annLUH3CTSM53Deg025bin: ../src/createalldescc4annLUH3CTSM53Deg025bin.c 71 | gcc -o createalldescc4annLUH3CTSM53Deg025bin ../src/createalldescc4annLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 72 | 73 | createalldescc3perLUH3CTSM53Deg025bin: ../src/createalldescc3perLUH3CTSM53Deg025bin.c 74 | gcc -o createalldescc3perLUH3CTSM53Deg025bin ../src/createalldescc3perLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 75 | 76 | createalldescc4perLUH3CTSM53Deg025bin: ../src/createalldescc4perLUH3CTSM53Deg025bin.c 77 | gcc -o createalldescc4perLUH3CTSM53Deg025bin ../src/createalldescc4perLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 78 | 79 | createalldescc3nfxLUH3CTSM53Deg025bin: ../src/createalldescc3nfxLUH3CTSM53Deg025bin.c 80 | gcc -o createalldescc3nfxLUH3CTSM53Deg025bin ../src/createalldescc3nfxLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 81 | 82 | createallmergesspLUH3CTSM53Deg025bin: ../src/createallmergesspLUH3CTSM53Deg025bin.c 83 | gcc -o createallmergesspLUH3CTSM53Deg025bin ../src/createallmergesspLUH3CTSM53Deg025bin.c -lm -mcmodel=medium 84 | 85 | -------------------------------------------------------------------------------- /script/createtimeseriessoilcolorsurfdata.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | import sys 3 | import os.path 4 | import math 5 | import string 6 | import subprocess 7 | import datetime as date 8 | import numpy as np 9 | import xarray as xr 10 | import matplotlib.pyplot as plt 11 | import netCDF4 as netcdf4 12 | from scipy import interpolate 13 | 14 | # load proper modules first, i.e. 15 | # cgd machines 16 | ''' 17 | module load lang/python/2.7.14 18 | 19 | ''' 20 | 21 | #-- end of function definitions --------------------------------- 22 | 23 | # process the input arguments 24 | 25 | arguments = len(sys.argv) - 1 26 | 27 | if (arguments != 6): 28 | print("Error: Usage createdatafile.py timeseriesnamelistfile timeseriesrawfilename timeseriesrawdirname regionfile timeseriessurffile timeseriessurfdir") 29 | sys.exit() 30 | else: 31 | print("Processing: " + str(sys.argv[1])) 32 | 33 | pftnum = 15 34 | cftnum = 64 35 | monthnum = 12 36 | monthdays = [ 14.0, 45.0, 73.0, 104.0, 134.0, 165.0, 195.0, 226.0, 257.0, 287.0, 318.0, 348.0 ] 37 | startyear = 2005 38 | 39 | luh2descnamelistfilename = str(sys.argv[1]) 40 | timeseriesrawfilename = str(sys.argv[2]) 41 | timeseriesrawdirname = str(sys.argv[3]) 42 | subregionfilename = str(sys.argv[4]) 43 | timeseriessurffilename = str(sys.argv[5]) 44 | timeseriessurfdirname = str(sys.argv[6]) 45 | 46 | luh2descnamelistfile = open(luh2descnamelistfilename) 47 | luh2descnamelist = luh2descnamelistfile.readlines() 48 | luh2descauthorparts = luh2descnamelist[0].split() 49 | luh2descauthorpartnum = len(luh2descauthorparts) 50 | luh2descauthor = "" 51 | for luh2descauthorpartindex in range(luh2descauthorpartnum): 52 | if (luh2descauthorpartindex > 1): 53 | luh2descauthor = luh2descauthor + " " 54 | if (luh2descauthorpartindex > 0): 55 | luh2descauthor = luh2descauthor + luh2descauthorparts[luh2descauthorpartindex] 56 | luh2descnameparts = luh2descnamelist[1].split() 57 | luh2descname = luh2descnameparts[1] 58 | timeseriessurfoutputparts = luh2descnamelist[2].split() 59 | timeseriessurfoutput = timeseriessurfoutputparts[1] 60 | timeseriessurfoutputnameparts = luh2descnamelist[3].split() 61 | timeseriessurfoutputname = timeseriessurfoutputnameparts[1] 62 | clm5modisrawinputparts = luh2descnamelist[4].split() 63 | clm5modisrawinput = clm5modisrawinputparts[1] 64 | clm5modisrawinputyearnameparts = luh2descnamelist[5].split() 65 | clm5modisrawinputyearname = clm5modisrawinputyearnameparts[1] 66 | 67 | print("author: " + luh2descauthor) 68 | print("luh2descname: " + luh2descname) 69 | print("timeseriessurfoutput: " + timeseriessurfoutput) 70 | print("timeseriessurfoutputname: " + timeseriessurfoutputname) 71 | print("clm5modisrawinput: " + clm5modisrawinput) 72 | 73 | timeseriesrawlistfile = open(timeseriesrawfilename,'r') 74 | timeseriesrawlist = timeseriesrawlistfile.readlines() 75 | numtimeseriesraw = len(timeseriesrawlist) 76 | timeseriesrawnames = [""] * numtimeseriesraw 77 | timeseriesrawdirs = [""] * numtimeseriesraw 78 | timeseriesrawstartyears = [""] * numtimeseriesraw 79 | timeseriesrawendyears = [""] * numtimeseriesraw 80 | clm5modisrawindex = -1 81 | for timeseriesrawlistindex in range(numtimeseriesraw): 82 | timeseriesrawlistvalues = timeseriesrawlist[timeseriesrawlistindex].split() 83 | timeseriesrawnames[timeseriesrawlistindex] = timeseriesrawlistvalues[0] 84 | timeseriesrawdirs[timeseriesrawlistindex] = timeseriesrawlistvalues[1] 85 | if (timeseriesrawdirs[timeseriesrawlistindex] == ""): 86 | timeseriesrawdirs[timeseriesrawlistindex] = timeseriesrawdirname 87 | timeseriesrawstartyears[timeseriesrawlistindex] = timeseriesrawlistvalues[2] 88 | timeseriesrawendyears[timeseriesrawlistindex] = timeseriesrawlistvalues[3] 89 | if (clm5modisrawinput == timeseriesrawnames[timeseriesrawlistindex]): 90 | clm5modisrawindex = timeseriesrawlistindex 91 | 92 | if (clm5modisrawindex == -1): 93 | print("Error: clm5modisrawinput not found " + clm5modisrawinput) 94 | sys.exit() 95 | else: 96 | print("Raw Input: " + timeseriesrawdirs[clm5modisrawindex] + timeseriesrawnames[clm5modisrawindex]) 97 | 98 | timeseriessurflistfile = open(timeseriessurffilename,'r') 99 | timeseriessurflist = timeseriessurflistfile.readlines() 100 | numtimeseriessurf = len(timeseriessurflist) 101 | timeseriessurfnames = [""] * numtimeseriessurf 102 | timeseriessurfdirs = [""] * numtimeseriessurf 103 | timeseriessurfstartyears = [""] * numtimeseriessurf 104 | timeseriessurfendyears = [""] * numtimeseriessurf 105 | timeseriessurfoutputindex = -1 106 | for timeseriessurflistindex in range(numtimeseriessurf): 107 | timeseriessurflistvalues = timeseriessurflist[timeseriessurflistindex].split() 108 | timeseriessurfnames[timeseriessurflistindex] = timeseriessurflistvalues[0] 109 | timeseriessurfdirs[timeseriessurflistindex] = timeseriessurflistvalues[1] 110 | if (timeseriessurfdirs[timeseriessurflistindex] == ""): 111 | timeseriessurfdirs[timeseriessurflistindex] = timeseriessurfdirname 112 | timeseriessurfstartyears[timeseriessurflistindex] = timeseriessurflistvalues[2] 113 | timeseriessurfendyears[timeseriessurflistindex] = timeseriessurflistvalues[3] 114 | if (timeseriessurfoutput == timeseriessurfnames[timeseriessurflistindex]): 115 | timeseriessurfoutputindex = timeseriessurflistindex 116 | 117 | if (timeseriessurfoutputindex == -1): 118 | print("Error: timeseriessurfoutput not found " + timeseriessurfoutput) 119 | sys.exit() 120 | else: 121 | print("Surface Output: " + timeseriessurfdirs[timeseriessurfoutputindex] + timeseriessurfnames[timeseriessurfoutputindex]) 122 | 123 | subregionfilename = str(sys.argv[4]) 124 | subregionfile = open(subregionfilename,'r') 125 | subregionlist = subregionfile.readlines() 126 | 127 | subregionlllon = float(subregionlist[0]) 128 | subregionlllat = float(subregionlist[1]) 129 | subregionurlon = float(subregionlist[2]) 130 | subregionurlat = float(subregionlist[3]) 131 | cellsize = float(subregionlist[4]) 132 | 133 | subregionloncells = int((subregionurlon - subregionlllon) / cellsize) 134 | subregionlatcells = int((subregionurlat - subregionlllat) / cellsize) 135 | 136 | lsmpftid = np.zeros(pftnum,dtype=int) 137 | for pftindex in range(pftnum): 138 | lsmpftid[pftindex] = pftindex 139 | 140 | lsmtime = np.zeros(monthnum,dtype=float) 141 | 142 | for timeindex in range(monthnum): 143 | lsmtime[timeindex] = monthdays[timeindex] 144 | 145 | lsmedgen = subregionurlat 146 | lsmedgee = subregionurlon 147 | lsmedges = subregionlllat 148 | lsmedgew = subregionlllon 149 | 150 | lsmLON = np.zeros(subregionloncells,dtype=np.float32) 151 | lsmLONGXY = np.zeros(shape=(subregionlatcells,subregionloncells),dtype=np.float32) 152 | lsmLAT = np.zeros(subregionlatcells,dtype=np.float32) 153 | lsmLATIXY = np.zeros(shape=(subregionlatcells,subregionloncells),dtype=np.float32) 154 | 155 | for lonindex in range(subregionloncells): 156 | loncount = float(lonindex) 157 | lonvalue = subregionlllon + cellsize / 2.0 + loncount * cellsize 158 | lsmLON[lonindex] = lonvalue 159 | 160 | for latindex in range(subregionlatcells): 161 | latcount = float(latindex) 162 | latvalue = subregionlllat + cellsize / 2.0 + latcount * cellsize 163 | lsmLAT[latindex] = latvalue 164 | 165 | for lonindex in range(subregionloncells): 166 | for latindex in range(subregionlatcells): 167 | lsmLONGXY[latindex,lonindex] = lsmLON[lonindex] 168 | lsmLATIXY[latindex,lonindex] = lsmLAT[latindex] 169 | 170 | clm5modisrawdirname = timeseriesrawdirs[clm5modisrawindex] + timeseriesrawnames[clm5modisrawindex] + "/" 171 | 172 | outputfilename = timeseriessurfdirs[timeseriessurfoutputindex] + timeseriessurfnames[timeseriessurfoutputindex] + "/" + timeseriessurfoutputname 173 | 174 | # process raw data files 175 | 176 | lsmLANDMASK = np.zeros(shape=(subregionlatcells,subregionloncells),dtype=np.float32) 177 | 178 | LANDMASKfilename = clm5modisrawdirname + clm5modisrawinput + ".LANDMASK.CLIM.dat" 179 | print("Processing LANDMASK > " + LANDMASKfilename) 180 | 181 | insurffloatdata = np.fromfile(LANDMASKfilename, dtype="float32", count=-1) 182 | insurffloatgrid = np.reshape(insurffloatdata,(subregionlatcells,subregionloncells)) 183 | lsmLANDMASK[:] = insurffloatgrid[::-1,:] 184 | 185 | lsmLANDFRAC = np.zeros(shape=(subregionlatcells,subregionloncells),dtype=np.float32) 186 | 187 | LANDFRACfilename = clm5modisrawdirname + clm5modisrawinput + ".LANDFRAC.CLIM.dat" 188 | print("Processing LANDFRAC > " + LANDFRACfilename) 189 | 190 | insurffloatdata = np.fromfile(LANDFRACfilename, dtype="float32", count=-1) 191 | insurffloatgrid = np.reshape(insurffloatdata,(subregionlatcells,subregionloncells)) 192 | lsmLANDFRAC[:] = insurffloatgrid[::-1,:] 193 | 194 | lsmAREA = np.zeros(shape=(subregionlatcells,subregionloncells),dtype=np.float32) 195 | 196 | AREAfilename = clm5modisrawdirname + clm5modisrawinput + ".AREA.CLIM.dat" 197 | print("Processing AREA > " + AREAfilename) 198 | 199 | insurffloatdata = np.fromfile(AREAfilename, dtype="float32", count=-1) 200 | insurffloatgrid = np.reshape(insurffloatdata,(subregionlatcells,subregionloncells)) 201 | lsmAREA[:] = insurffloatgrid[::-1,:] 202 | 203 | lsmSOILCOLOR = np.zeros(shape=(subregionlatcells,subregionloncells),dtype=np.float32) 204 | 205 | SOILCOLORfilename = clm5modisrawdirname + clm5modisrawinput + ".SOILCOLOR.CLIM.dat" 206 | print("Processing SOILCOLOR > " + SOILCOLORfilename) 207 | 208 | insurffloatdata = np.fromfile(SOILCOLORfilename, dtype="float32", count=-1) 209 | insurffloatgrid = np.reshape(insurffloatdata,(subregionlatcells,subregionloncells)) 210 | lsmSOILCOLOR[:] = insurffloatgrid[::-1,:] 211 | 212 | # generate timeseries data 213 | 214 | print('Creating: ' + outputfilename) 215 | outputfile = netcdf4.Dataset(outputfilename, 'w', format='NETCDF3_64BIT_DATA') 216 | 217 | outputfile.Conventions = 'NCAR-CSM' 218 | outputfile.Author = 'Peter Lawrence, Terrestrial Sciences Section, National Center for Atmospheric Research' 219 | datenow = date.datetime.now() 220 | datenowstr = datenow.strftime("%m-%d-%Y %H:%M:%S") 221 | outputfile.History_Log = 'created on: ' + datenowstr 222 | outputfile.Data_Log = clm5modisrawdirname 223 | 224 | outputfile.createDimension('lat',int(subregionlatcells)) 225 | outputfile.createDimension('lon',int(subregionloncells)) 226 | 227 | wEDGEN = outputfile.createVariable('EDGEN',np.float32) 228 | wEDGEE = outputfile.createVariable('EDGEE',np.float32) 229 | wEDGES = outputfile.createVariable('EDGES',np.float32) 230 | wEDGEW = outputfile.createVariable('EDGEW',np.float32) 231 | wLAT = outputfile.createVariable('LAT',np.float32,('lat',)) 232 | wLATIXY = outputfile.createVariable('LATIXY',np.float32,('lat','lon')) 233 | wLON = outputfile.createVariable('LON',np.float32,('lon',)) 234 | wLONGXY = outputfile.createVariable('LONGXY',np.float32,('lat','lon')) 235 | wLANDMASK = outputfile.createVariable('LANDMASK',np.float32,('lat','lon')) 236 | wLANDFRAC = outputfile.createVariable('LANDFRAC',np.float32,('lat','lon')) 237 | wAREA = outputfile.createVariable('AREA',np.float32,('lat','lon')) 238 | wSOILCOLOR = outputfile.createVariable('SOIL_COLOR',np.float32,('lat','lon'),fill_value=-9999.0) 239 | 240 | wEDGEN[...] = float(lsmedgen) 241 | wEDGEN.long_name = 'northern edge of surface grid' 242 | wEDGEN.units = 'degrees north' 243 | 244 | wEDGEE[...] = float(lsmedgee) 245 | wEDGEE.long_name = 'eastern edge of surface grid' 246 | wEDGEE.units = 'degrees east' 247 | 248 | wEDGES[...] = float(lsmedges) 249 | wEDGES.long_name = 'southern edge of surface grid' 250 | wEDGES.units = 'degrees north' 251 | 252 | wEDGEW[...] = float(lsmedgew) 253 | wEDGEW.long_name = 'western edge of surface grid' 254 | wEDGEW.units = 'degrees east' 255 | 256 | wLAT[:] = lsmLAT 257 | wLAT.long_name = 'lat' 258 | wLAT.units = 'degrees north' 259 | 260 | wLATIXY[:] = lsmLATIXY 261 | wLATIXY.long_name = 'latitude-2d' 262 | wLATIXY.units = 'degrees north' 263 | 264 | wLON[:] = lsmLON 265 | wLON.long_name = 'lon' 266 | wLON.units = 'degrees east' 267 | 268 | wLONGXY[:] = lsmLONGXY 269 | wLONGXY.long_name = 'longitude-2d' 270 | wLONGXY.units = 'degrees east' 271 | 272 | wLANDMASK[:] = lsmLANDMASK 273 | wLANDMASK.long_name = 'and mask' 274 | wLANDMASK.units = 'unitless' 275 | 276 | wLANDFRAC[:] = lsmLANDFRAC 277 | wLANDFRAC.long_name = 'land fraction of gridcell' 278 | wLANDFRAC.units = 'unitless' 279 | 280 | wAREA[:] = lsmAREA 281 | wAREA.long_name = 'area of gridcell' 282 | wAREA.units = 'km^2' 283 | 284 | wSOILCOLOR[:] = lsmSOILCOLOR 285 | wSOILCOLOR.long_name = 'CTSM52 soil color' 286 | wSOILCOLOR.units = 'unitless' 287 | 288 | -------------------------------------------------------------------------------- /README.process: -------------------------------------------------------------------------------- 1 | Instructions for Processing the CTSM53 LUH3 Land Use Data Prep Tools 2 | 3 | Historical Descriptor File Generation 4 | 5 | 1. Generate All Base LUH3 surface datasets 6 | 7 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_NOANTHRO_CMIP7_gensurfdata.txt 8 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_HIST_CMIP7_gensurfdata.txt 9 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_SSP119_CMIP7_gensurfdata.txt 10 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_SSP126_CMIP7_gensurfdata.txt 11 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_SSP245_CMIP7_gensurfdata.txt 12 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_SSP370_CMIP7_gensurfdata.txt 13 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_SSP460_CMIP7_gensurfdata.txt 14 | tools/runcreateluh3allsurfdata luh3namelist/LUH3_SSP585_CMIP7_gensurfdata.txt 15 | 16 | 2. Generate CTSM53 MODIS EarthStat, MODIS Current and CRU raw and surface data files 17 | 18 | tools/runcreateworkmodiscurrentallrawdata worknamelist/CTSM53_MODIS_CURRENT_generateallrawdata.txt 19 | tools/runcreateworkclm5surfdata worknamelist/CTSM53_MODIS_CURRENT_generatesurfdata.txt 20 | tools/runcreateworkclimatesurfdata worknamelist/CRU_321_generatesurfdata.txt 21 | 22 | 3. Generate CRU CTSM LUH3 climate vegetation cover lookup files - if they don't a 23 | 24 | tools/runcreateluh3modiscruclimatevegetationlutfiles LUH3_MODIS_CRU_HIST_CMIP7 2005 25 | 26 | 4. Generate CTSM53 MODIS EarthStat and Initial Potential Vegetation Continuous Fields (VCF) in workrawdata 27 | 28 | tools/runcreateworkmodiscurrentvcfrawdata worknamelist/CTSM53_MODIS_CURRENT_VCF_generateallrawdata.txt 29 | tools/runcreateworkpotvegforestinitialvcfrawdata worknamelist/CTSM53_POTVEGINIT_FOREST_VCF_generateallrawdata.txt 30 | tools/runcreateworkpotvegnonforestinitialvcfrawdata worknamelist/CTSM53_POTVEGINIT_NONFOREST_VCF_generateallrawdata.txt 31 | tools/runcreateworkpotvegrangeinitialvcfrawdata worknamelist/CTSM53_POTVEGINIT_RANGE_VCF_generateallrawdata.txt 32 | 33 | Check Initial Vegetation Continuous Fields (VCF) netcdf files in worksurfdata - Optional 34 | 35 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_MODIS_CURRENT_VCF_generatesurfdata.txt 36 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGINIT_FOREST_VCF_generatesurfdata.txt 37 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGINIT_NONFOREST_VCF_generatesurfdata.txt 38 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGINIT_RANGE_VCF_generatesurfdata.txt 39 | 40 | 5. Generate Combined Vegetation Continuous Fields (VCF) for Climate Potential Vegetation in workrawdata 41 | 42 | tools/runcreateworkpotvegallcombinedvcfrawdata worknamelist/CTSM53_POTVEGCOMB_ALL_VCF_generateallrawdata.txt 43 | 44 | Check Vegetation Continuous Fields (VCF) netcdf files in worksurfdata - Optional 45 | 46 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGCOMB_FOREST_VCF_generatesurfdata.txt 47 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGCOMB_NONFOREST_VCF_generatesurfdata.txt 48 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGCOMB_RANGE_VCF_generatesurfdata.txt 49 | 50 | 6. Generate Current Day Scaled Vegetation Continuous Fields (VCF) for Climate Potential Vegetation in workrawdata 51 | 52 | tools/runcreateworkpotvegallscaledvcfrawdata worknamelist/CTSM53_POTVEGSCALED_ALL_VCF_generateallrawdata.txt 53 | 54 | Check Vegetation Continuous Fields (VCF) netcdf files in worksurfdata - Optional 55 | 56 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGSCALED_FOREST_VCF_generatesurfdata.txt 57 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGSCALED_NONFOREST_VCF_generatesurfdata.txt 58 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGSCALED_RANGE_VCF_generatesurfdata.txt 59 | 60 | 7. Generate Maximum Vegetation Continuous Fields (VCF) for Climate Potential Vegetation in workrawdata. 61 | Potential Vegetation is updated where current day MODIS EarthStat vegetation is higher. 62 | 63 | tools/runcreateworkpotvegallmaxvcfrawdata worknamelist/CTSM53_POTVEGMAX_ALL_VCF_generateallrawdata.txt 64 | 65 | Check Vegetation Continuous Fields (VCF) netcdf files in worksurfdata - Optional 66 | 67 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGMAX_FOREST_VCF_generatesurfdata.txt 68 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGMAX_NONFOREST_VCF_generatesurfdata.txt 69 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_POTVEGMAX_RANGE_VCF_generatesurfdata.txt 70 | 71 | 8. Generate Maximum Vegetation Continuous Fields (VCF) for Forests in workrawdata. Maximum Potential Vegetation 72 | is updated to account for human plantation management. 73 | 74 | tools/runcreateworkforestallmaxvcfrawdata worknamelist/CTSM53_FORESTMAX_ALL_VCF_generateallrawdata.txt 75 | 76 | Check Vegetation Continuous Fields (VCF) netcdf files in worksurfdata - Optional 77 | 78 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_FORESTMAX_FOREST_VCF_generatesurfdata.txt 79 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_FORESTMAX_NONFOREST_VCF_generatesurfdata.txt 80 | tools/runcreateworkvcfsurfdata worknamelist/CTSM53_FORESTMAX_RANGE_VCF_generatesurfdata.txt 81 | 82 | 9. Generate All of the raw Merge files for primf secdf primn secdn range for generating the LUH3 Descriptor files 83 | 84 | tools/runcreateworkmergeallhistoricalrawdata worknamelist/CTSM53_LUH3_HIST_CMIP7_MERGE_generateallrawdata.txt 85 | 86 | Check Merge netcdf files in worksurfdata for LUH3Type (PRIMF,SECDF,PRIMN,SECDN,RANGE) FractionType (TREEFRAC,HERBFRAC,BAREFRAC) - Optional 87 | 88 | tools/runcreateworkmergesurfdata worknamelist/CTSM53_LUH3_HIST_CMIP7_MERGE_generatesurfdata.txt - Optional 89 | 90 | 10. Generate All the VCF Tree, Herb and Grass PFT extrapolation files 91 | 92 | tools/runcreateworkclm5extrapallvcfpftrawdata worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_VCF_PFT_generateallrawdata.txt 93 | 94 | Check Extrapolation netcdf files in worksurfdata for PFT composition (TREE_EXTRAP,HERB_EXTRAP,GRASS_EXTRAP) - Optional 95 | 96 | tools/runcreateworkclm5surfdata worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_TREE_VCF_PFT_generatesurfdata.txt 97 | tools/runcreateworkclm5surfdata worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_HERB_VCF_PFT_generatesurfdata.txt 98 | tools/runcreateworkclm5surfdata worknamelist/CTSM53_MODIS_CURRENT_EXTRAP_GRASS_VCF_PFT_generatesurfdata.txt 99 | 100 | 11. Generate All of the raw LUH3 component PFT Descriptor files for PRIMF SECDF PRIMN SECDN RANGE PASTR for a timeseries 101 | 102 | Generate the Descriptor files in rawdata: 103 | tools/runcreateluh3descprimfrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMF_PFT_generateallrawdata.txt 104 | tools/runcreateluh3descsecdfrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt 105 | tools/runcreateluh3descprimnrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMN_PFT_generateallrawdata.txt 106 | tools/runcreateluh3descsecdnrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDN_PFT_generateallrawdata.txt 107 | tools/runcreateluh3descrangerawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_RANGE_PFT_generateallrawdata.txt 108 | tools/runcreateluh3descpastrrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PASTR_PFT_generateallrawdata.txt 109 | 110 | Generate the Descriptor files in surfdata: 111 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMF_PFT_generatesurfdata.txt 112 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt 113 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PRIMN_PFT_generatesurfdata.txt 114 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_SECDN_PFT_generatesurfdata.txt 115 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_RANGE_PFT_generatesurfdata.txt 116 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_PASTR_PFT_generatesurfdata.txt 117 | 118 | 12. Generate All of the raw LUH3 component CFT Descriptor files for c3ann c4ann c3per c4per c3nfx for a timeseries 119 | 120 | Generate the Descriptor files in rawdata: 121 | tools/runcreateluh3descc3annrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3ANN_CFT_generateallrawdata.txt 122 | tools/runcreateluh3descc4annrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4ANN_CFT_generateallrawdata.txt 123 | tools/runcreateluh3descc3perrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3PER_CFT_generateallrawdata.txt 124 | tools/runcreateluh3descc4perrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4PER_CFT_generateallrawdata.txt 125 | tools/runcreateluh3descc3nfxrawdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3NFX_CFT_generateallrawdata.txt 126 | 127 | Generate the Descriptor files in surfdata: 128 | tools/runcreateluh3desccftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3ANN_CFT_generatesurfdata.txt 129 | tools/runcreateluh3desccftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4ANN_CFT_generatesurfdata.txt 130 | tools/runcreateluh3desccftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3PER_CFT_generatesurfdata.txt 131 | tools/runcreateluh3desccftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C4PER_CFT_generatesurfdata.txt 132 | tools/runcreateluh3desccftsurfdata luh3descnamelist/CTSM53_LUH3_HIST_CMIP7_DESC_C3NFX_CFT_generatesurfdata.txt 133 | 134 | 13. Generate All the raw LAI and Soil Color files for a timeseries these need to already exist as raw data for the timeseries 135 | 136 | tools/runcreatetimeseriesclm5surfdata timeseriesnamelist/CTSM53_MODIS_CURRENT_generatesurfdata.txt 137 | tools/runcreatetimeseriesclm5pftlaisurfdata timeseriesnamelist/CTSM53_MODIS_CURRENT_PFT_LAI_generatesurfdata.txt 138 | tools/runcreatetimeseriesclm5soilcolorsurfdata timeseriesnamelist/CTSM53_MODIS_CURRENT_SOIL_COLOR_generatesurfdata.txt 139 | 140 | Future SSP Time Series Descriptor File Generation - Assumes that Historical Descriptor Files have been generated. 141 | 142 | 1. Generate Secondary Forest Merge File to account for Re/Afforestation using FORESTMAX plantation potential PFT values. 143 | 144 | tools/runcreateworkmergeallssprawdata worknamelist/CTSM53_LUH3_SSP119_CMIP7_MERGE_generateallrawdata.txt 145 | tools/runcreateworkmergeallssprawdata worknamelist/CTSM53_LUH3_SSP126_CMIP7_MERGE_generateallrawdata.txt 146 | tools/runcreateworkmergeallssprawdata worknamelist/CTSM53_LUH3_SSP245_CMIP7_MERGE_generateallrawdata.txt 147 | tools/runcreateworkmergeallssprawdata worknamelist/CTSM53_LUH3_SSP370_CMIP7_MERGE_generateallrawdata.txt 148 | tools/runcreateworkmergeallssprawdata worknamelist/CTSM53_LUH3_SSP460_CMIP7_MERGE_generateallrawdata.txt 149 | tools/runcreateworkmergeallssprawdata worknamelist/CTSM53_LUH3_SSP585_CMIP7_MERGE_generateallrawdata.txt 150 | 151 | Check Merge netcdf files in worksurfdata for LUH3Type (SECDF) FractionType (TREEFRAC,HERBFRAC,BAREFRAC) - Optional 152 | 153 | tools/runcreateworkmergesurfdata worknamelist/CTSM53_LUH3_SSP119_CMIP7_MERGE_generatesurfdata.txt 154 | tools/runcreateworkmergesurfdata worknamelist/CTSM53_LUH3_SSP126_CMIP7_MERGE_generatesurfdata.txt 155 | tools/runcreateworkmergesurfdata worknamelist/CTSM53_LUH3_SSP245_CMIP7_MERGE_generatesurfdata.txt 156 | tools/runcreateworkmergesurfdata worknamelist/CTSM53_LUH3_SSP370_CMIP7_MERGE_generatesurfdata.txt 157 | tools/runcreateworkmergesurfdata worknamelist/CTSM53_LUH3_SSP460_CMIP7_MERGE_generatesurfdata.txt 158 | tools/runcreateworkmergesurfdata worknamelist/CTSM53_LUH3_SSP585_CMIP7_MERGE_generatesurfdata.txt 159 | 160 | 2. Generate Secondary Forest Descriptor File to account for Re/Afforestation using FORESTMAX plantation potential PFT values. 161 | 162 | Generate the Descriptor files in rawdata: 163 | tools/runcreateluh3descsecdfrawdata luh3descnamelist/CTSM53_LUH3_SSP119_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt 164 | tools/runcreateluh3descsecdfrawdata luh3descnamelist/CTSM53_LUH3_SSP126_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt 165 | tools/runcreateluh3descsecdfrawdata luh3descnamelist/CTSM53_LUH3_SSP245_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt 166 | tools/runcreateluh3descsecdfrawdata luh3descnamelist/CTSM53_LUH3_SSP370_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt 167 | tools/runcreateluh3descsecdfrawdata luh3descnamelist/CTSM53_LUH3_SSP460_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt 168 | tools/runcreateluh3descsecdfrawdata luh3descnamelist/CTSM53_LUH3_SSP585_CMIP7_DESC_SECDF_PFT_generateallrawdata.txt 169 | 170 | Generate the Descriptor files in surfdata: 171 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_SSP119_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt 172 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_SSP126_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt 173 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_SSP245_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt 174 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_SSP370_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt 175 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_SSP460_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt 176 | tools/runcreateluh3descpftsurfdata luh3descnamelist/CTSM53_LUH3_SSP585_CMIP7_DESC_SECDF_PFT_generatesurfdata.txt 177 | -------------------------------------------------------------------------------- /script/createluh3modiscruclimatevegetationrawlutfile.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | import sys 3 | import os.path 4 | import string 5 | import subprocess 6 | import datetime as date 7 | import numpy as np 8 | import xarray as xr 9 | import matplotlib.pyplot as plt 10 | import netCDF4 as netcdf4 11 | from scipy import interpolate 12 | from math import sqrt 13 | 14 | # load proper modules first, i.e. 15 | # cgd machines 16 | ''' 17 | module load lang/python/2.7.14 18 | 19 | ''' 20 | 21 | #-- end of function definitions --------------------------------- 22 | 23 | # process the input arguments 24 | 25 | arguments = len(sys.argv) - 1 26 | 27 | if (arguments != 10): 28 | print("Error: Usage createrawglobalmonthlyareasumdata.py experimentname yearname experimentlist luh3surfdir worksurfdir landusename landuselist pftname pftlist outputfilename") 29 | sys.exit() 30 | else: 31 | print("Processing: " + str(sys.argv[1]) + " => " + str(sys.argv[8])) 32 | 33 | experimentname = str(sys.argv[1]) 34 | yearname = str(sys.argv[2]) 35 | experimentlistfilename = str(sys.argv[3]) 36 | luh3surfdirname = str(sys.argv[4]) 37 | worksurfdirname = str(sys.argv[5]) 38 | 39 | filtersize = 0.8 40 | 41 | experimentlistfile = open(experimentlistfilename,'r') 42 | experimentlist = experimentlistfile.readlines() 43 | numexperiments = len(experimentlist) 44 | experimentnames = [""] * numexperiments 45 | experimentyears = [""] * numexperiments 46 | experimentfiletypes = [""] * numexperiments 47 | experimentstartyears = [""] * numexperiments 48 | experimentendyears = [""] * numexperiments 49 | experimentdirs = [""] * numexperiments 50 | experimentfiles = [""] * numexperiments 51 | luh3fileindex = -1 52 | modisfileindex = -1 53 | climatefileindex = -1 54 | for experimentlistindex in range(numexperiments): 55 | experimentlistvalues = experimentlist[experimentlistindex].split() 56 | experimentnames[experimentlistindex] = experimentlistvalues[0] 57 | experimentyears[experimentlistindex] = experimentlistvalues[1] 58 | experimentfiletypes[experimentlistindex] = experimentlistvalues[2] 59 | experimentstartyears[experimentlistindex] = experimentlistvalues[3] 60 | experimentendyears[experimentlistindex] = experimentlistvalues[4] 61 | experimentdirs[experimentlistindex] = experimentlistvalues[5] 62 | if (experimentdirs[experimentlistindex] == ""): 63 | experimentdirs[experimentlistindex] = luh3surfdirname 64 | if (experimentdirs[experimentlistindex] == ""): 65 | experimentdirs[experimentlistindex] = worksurfdirname 66 | experimentfiles[experimentlistindex] = experimentlistvalues[6] 67 | if (experimentname == experimentnames[experimentlistindex] and yearname == experimentyears[experimentlistindex] and "LUH3" == experimentfiletypes[experimentlistindex]): 68 | luh3fileindex = experimentlistindex 69 | if (experimentname == experimentnames[experimentlistindex] and yearname == experimentyears[experimentlistindex] and "MODIS" == experimentfiletypes[experimentlistindex]): 70 | modisfileindex = experimentlistindex 71 | if (experimentname == experimentnames[experimentlistindex] and yearname == experimentyears[experimentlistindex] and "CLIMATE" == experimentfiletypes[experimentlistindex]): 72 | climatefileindex = experimentlistindex 73 | 74 | if (luh3fileindex == -1): 75 | print("Error: Experiment and Year LUH3 file not found " + experimentname + " - " + yearname) 76 | sys.exit() 77 | 78 | if (modisfileindex == -1): 79 | print("Error: Experiment and Year MODIS file not found " + experimentname + " - " + yearname) 80 | sys.exit() 81 | 82 | if (climatefileindex == -1): 83 | print("Error: Experiment and Year CLIMATE file not found " + experimentname + " - " + yearname) 84 | sys.exit() 85 | 86 | luh3filename = experimentdirs[luh3fileindex] + experimentfiles[luh3fileindex] 87 | luh3year = int(experimentyears[luh3fileindex]) 88 | luh3startyear = int(experimentstartyears[luh3fileindex]) 89 | luh3endyear = int(experimentendyears[luh3fileindex]) 90 | luh3yearindex = luh3year - luh3startyear 91 | 92 | modisfilename = experimentdirs[modisfileindex] + experimentfiles[modisfileindex] 93 | 94 | climatefilename = experimentdirs[climatefileindex] + experimentfiles[climatefileindex] 95 | 96 | # read landuse data from landuse file 97 | 98 | landusename = str(sys.argv[6]) 99 | landuselistfilename = str(sys.argv[7]) 100 | 101 | landuselistfile = open(landuselistfilename,'r') 102 | landuselist = landuselistfile.readlines() 103 | numlanduses = len(landuselist) 104 | landusenames = [""] * numlanduses 105 | landuseindex = -1 106 | numlanduseids = -1 107 | numlandusefilters = -1 108 | allvegindex = -1 109 | numallvegids = -1 110 | numallvegfilters = -1 111 | for landuselistindex in range(numlanduses): 112 | landuselistvalues = landuselist[landuselistindex].split() 113 | landusenames[landuselistindex] = landuselistvalues[0] 114 | if (landusename == landusenames[landuselistindex]): 115 | landuseindex = landuselistindex 116 | numlanduseids = int(landuselistvalues[1]) 117 | landuseids = [""] * numlanduseids 118 | for landuseidindex in range(numlanduseids): 119 | landuseids[landuseidindex] = landuselistvalues[2+landuseidindex] 120 | numlandusefilters = int(landuselistvalues[2+numlanduseids]) 121 | landusefilters = [""] * numlandusefilters 122 | for landuseidindex in range(numlandusefilters): 123 | landusefilters[landuseidindex] = landuselistvalues[3+numlanduseids+landuseidindex] 124 | if ("allveg" == landusenames[landuselistindex]): 125 | allvegindex = landuselistindex 126 | numallvegids = int(landuselistvalues[1]) 127 | allvegids = [""] * numallvegids 128 | for allvegidindex in range(numallvegids): 129 | allvegids[allvegidindex] = landuselistvalues[2+allvegidindex] 130 | numallvegfilters = int(landuselistvalues[2+numallvegids]) 131 | allvegfilters = [""] * numallvegfilters 132 | for allvegidindex in range(numallvegfilters): 133 | allvegfilters[allvegidindex] = landuselistvalues[3+numallvegids+allvegidindex] 134 | 135 | if (landuseindex == -1): 136 | print("Error: Landuse not found " + landusename) 137 | sys.exit() 138 | 139 | # read pft data from pft file 140 | 141 | pftname = str(sys.argv[8]) 142 | pftlistfilename = str(sys.argv[9]) 143 | 144 | pftlistfile = open(pftlistfilename,'r') 145 | pftlist = pftlistfile.readlines() 146 | numpfts = len(pftlist) 147 | pftnames = [""] * numpfts 148 | pftindex = -1 149 | pftnumids = -1 150 | for pftlistindex in range(numpfts): 151 | pftlistvalues = pftlist[pftlistindex].split() 152 | pftnames[pftlistindex] = pftlistvalues[0] 153 | if (pftname == pftnames[pftlistindex]): 154 | pftindex = pftlistindex 155 | numpftids = int(pftlistvalues[1]) 156 | pftids = np.zeros(numpftids,dtype=int) 157 | for pftidindex in range(numpftids): 158 | pftids[pftidindex] = int(pftlistvalues[2+pftidindex]) 159 | 160 | if (pftindex == -1): 161 | print("Error: PFT not found " + pftname) 162 | sys.exit() 163 | 164 | 165 | print("Reading File: " + luh3filename) 166 | luh3file = netcdf4.Dataset(luh3filename,'r') 167 | 168 | luh3landfrac=np.asfarray(luh3file.variables["LANDFRAC"][:,:],np.float32) 169 | luh3landmask=np.asfarray(luh3file.variables["LANDMASK"][:,:],np.float32) 170 | luh3area=np.asfarray(luh3file.variables["AREA"][:,:],np.float32) 171 | luh3lon = np.asfarray(luh3file.variables["LON"][:],np.float32) 172 | luh3lat = np.asfarray(luh3file.variables["LAT"][:],np.float32) 173 | nluh3lat = luh3lat.size 174 | nluh3lon = luh3lon.size 175 | landusevariabletype = luh3file.variables["primf"].datatype 176 | landusevariablefillvalue = luh3file.variables["primf"]._FillValue 177 | landusevariablevalues = np.zeros(shape=(nluh3lat,nluh3lon),dtype=float) 178 | for landuseidindex in range(numlanduseids): 179 | landuseid = landuseids[landuseidindex] 180 | landusevalues = np.asfarray(luh3file.variables[landuseid][luh3yearindex,:,:],landusevariabletype) 181 | landusevariablevalues += landusevalues 182 | landusevariablevaluesarea = luh3landfrac * landusevariablevalues * luh3area 183 | landusefiltervalues = np.zeros(shape=(nluh3lat,nluh3lon),dtype=float) 184 | for landuseidindex in range(numlandusefilters): 185 | landuseid = landusefilters[landuseidindex] 186 | landusevalues = np.asfarray(luh3file.variables[landuseid][luh3yearindex,:,:],landusevariabletype) 187 | landusefiltervalues += landusevalues 188 | landusefiltervaluesarea = luh3landfrac * landusevariablevalues * luh3area 189 | luh3file.close() 190 | 191 | 192 | print("Reading File: " + modisfilename) 193 | modisfile = netcdf4.Dataset(modisfilename,'r') 194 | 195 | modislandfrac=np.asfarray(modisfile.variables["LANDFRAC"][:,:],np.float32) 196 | modislandmask=np.asfarray(modisfile.variables["LANDMASK"][:,:],np.float32) 197 | modisarea=np.asfarray(modisfile.variables["AREA"][:,:],np.float32) 198 | modislon = np.asfarray(modisfile.variables["LON"][:],np.float32) 199 | modislat = np.asfarray(modisfile.variables["LAT"][:],np.float32) 200 | nmodislat = modislat.size 201 | nmodislon = modislon.size 202 | modisvariabletype = modisfile.variables["PCT_NAT_PFT"].datatype 203 | modisvariablefillvalue = modisfile.variables["PCT_NAT_PFT"]._FillValue 204 | modisvariablevalues = np.zeros(shape=(nmodislat,nmodislon),dtype=float) 205 | for pftidindex in range(numpftids): 206 | pftid = pftids[pftidindex] 207 | pftvalues = np.asfarray(modisfile.variables["PCT_NAT_PFT"][pftid,:,:],modisvariabletype) 208 | modisvariablevalues += pftvalues[0,:,:] 209 | modisvariablefracvalues = modisvariablevalues / 100.0 210 | modisfile.close() 211 | 212 | print("Reading File: " + climatefilename) 213 | climatefile = netcdf4.Dataset(climatefilename,'r') 214 | 215 | climlandfrac=np.asfarray(climatefile.variables["LANDFRAC"][:,:],np.float32) 216 | climlandmask=np.asfarray(climatefile.variables["LANDMASK"][:,:],np.float32) 217 | climarea=np.asfarray(climatefile.variables["AREA"][:,:],np.float32) 218 | climlon = np.asfarray(climatefile.variables["LON"][:],np.float32) 219 | climlat = np.asfarray(climatefile.variables["LAT"][:],np.float32) 220 | nclimlat = climlat.size 221 | nclimlon = climlon.size 222 | climprecipann = np.asfarray(climatefile.variables["precipann"][:,:],np.float32) 223 | climtempaverage = np.asfarray(climatefile.variables["tempaverage"][:,:],np.float32) 224 | 225 | 226 | numprecipclasses = 100 227 | precipclassstart = 0.0 228 | precipclasssize = 50.0 229 | numtempclasses = 100 230 | tempclassstart = -15.0 231 | tempclasssize = 0.5 232 | outresults = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float64) 233 | outareasums = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float64) 234 | outputfilename = str(sys.argv[10]) + ".csv" 235 | outputstr = "{0:.3f}" 236 | 237 | for latindex in range(nluh3lat): 238 | for lonindex in range(nluh3lon): 239 | landusefrac = luh3landfrac[latindex,lonindex] 240 | if (landusefrac > 0.0): 241 | landusegridarea = luh3area[latindex,lonindex] 242 | landuselandarea = landusefrac * landusegridarea 243 | landusefilterarea = landusefiltervaluesarea[latindex,lonindex] 244 | if (landusefilterarea > filtersize * landuselandarea): 245 | landusevariablearea = landusevariablevaluesarea[latindex,lonindex] 246 | modisvariablefrac = modisvariablefracvalues[latindex,lonindex] 247 | landusemodisvariablearea = modisvariablefrac * landusevariablearea 248 | currprecipann = climprecipann[latindex,lonindex] 249 | currtempaverage = climtempaverage[latindex,lonindex] 250 | precipannindex = int((currprecipann - precipclassstart) / precipclasssize) 251 | if (precipannindex < 0): 252 | precipannindex = 0 253 | if (precipannindex >= numprecipclasses): 254 | precipannindex = numprecipclasses - 1 255 | tempaverageindex = int((currtempaverage - tempclassstart) / tempclasssize) 256 | if (tempaverageindex < 0): 257 | tempaverageindex = 0 258 | if (tempaverageindex >= numtempclasses): 259 | tempaverageindex = numtempclasses - 1 260 | outresults[precipannindex,tempaverageindex] += landusemodisvariablearea 261 | outareasums[precipannindex,tempaverageindex] += landusevariablearea 262 | 263 | for precipannindex in range(numprecipclasses): 264 | for tempaverageindex in range(numtempclasses): 265 | tempresult = outresults[precipannindex,tempaverageindex] 266 | temparea = outareasums[precipannindex,tempaverageindex] 267 | if (temparea > 0.0): 268 | tempresult = tempresult / temparea * 100.0 269 | else: 270 | tempresult = 0.0 271 | outresults[precipannindex,tempaverageindex] = tempresult 272 | 273 | # write timeseries file 274 | 275 | outputfile = open(outputfilename,"w") 276 | outputline = "precipann" 277 | for tempaverageindex in range(numtempclasses): 278 | outputline = outputline + "," 279 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 280 | outputline = outputline + str(tempaveragevalue) 281 | outputline = outputline + "\n" 282 | outputfile.write(outputline) 283 | 284 | for precipannindex in range(numprecipclasses): 285 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 286 | outputline = str(precipannvalue) 287 | for tempaverageindex in range(numtempclasses): 288 | outputline = outputline + "," 289 | outputline = outputline + outputstr.format(outresults[precipannindex,tempaverageindex]) 290 | outputline = outputline + "\n" 291 | outputfile.write(outputline) 292 | -------------------------------------------------------------------------------- /script/createluh3modiscruclimatevegetationnormalizedlutfile.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | import sys 3 | import os.path 4 | import string 5 | import subprocess 6 | import datetime as date 7 | import numpy as np 8 | import xarray as xr 9 | import matplotlib.pyplot as plt 10 | import netCDF4 as netcdf4 11 | from scipy import interpolate 12 | from math import sqrt 13 | from numpy.polynomial import Chebyshev as T 14 | from numpy.polynomial import Polynomial as P 15 | 16 | # load proper modules first, i.e. 17 | # cgd machines 18 | ''' 19 | module load lang/python/2.7.14 20 | 21 | ''' 22 | 23 | def readdatavalue(datasetfilename,variable1name,variable2name): 24 | datasetfile = open(datasetfilename,'r') 25 | datasetlist = datasetfile.readlines() 26 | numdatasetlist = len(datasetlist) 27 | variablelist = datasetlist[0].strip().split(",") 28 | numvariablelist = len(variablelist) 29 | variable1index = -1 30 | variable2index = -1 31 | datasetvalue = 0.0 32 | for variablesearchindex in range(numvariablelist): 33 | if (variable1name == variablelist[variablesearchindex]): 34 | variable1index = variablesearchindex 35 | if (variable1index == -1): 36 | print("Warning: " + datasetfilename + " Variable Not Found " + variable1name) 37 | else: 38 | for datasetlistindex in range(numdatasetlist): 39 | valuelist = datasetlist[datasetlistindex].split(",") 40 | if (variable2name == valuelist[0]): 41 | variable2index = datasetlistindex 42 | datasetvalue = float(valuelist[variable1index]) 43 | if (variable2index == -1): 44 | print("Warning: " + datasetfilename + " Variable Not Found " + variable2name) 45 | 46 | return datasetvalue 47 | 48 | 49 | #-- end of function definitions --------------------------------- 50 | 51 | # process the input arguments 52 | 53 | arguments = len(sys.argv) - 1 54 | 55 | if (arguments != 10): 56 | print("Error: Usage createrawglobalmonthlyareasumdata.py pft1filename pft1climateid pft2filename pft2climateid pft3filename pft3climateid output1filename output2filename output3filename climatemaskfilename") 57 | sys.exit() 58 | else: 59 | print("Processing: " + str(sys.argv[1]) + " => " + str(sys.argv[7])) 60 | 61 | pft1filename = str(sys.argv[1]) 62 | pft1climateid = str(sys.argv[2]) 63 | pft2filename = str(sys.argv[3]) 64 | pft2climateid = str(sys.argv[4]) 65 | pft3filename = str(sys.argv[5]) 66 | pft3climateid = str(sys.argv[6]) 67 | 68 | numprecipclasses = 100 69 | precipclassstart = 0.0 70 | precipclasssize = 50.0 71 | numtempclasses = 100 72 | tempclassstart = -15.0 73 | tempclasssize = 0.5 74 | pft1matrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 75 | pft2matrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 76 | pft3matrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 77 | pft1output = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 78 | pft2output = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 79 | pft3output = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 80 | output1filename = str(sys.argv[7]) 81 | output2filename = str(sys.argv[8]) 82 | output3filename = str(sys.argv[9]) 83 | outputstr = "{0:.3f}" 84 | 85 | for precipannindex in range(numprecipclasses): 86 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 87 | precipannstr = str(precipannvalue) 88 | for tempaverageindex in range(numtempclasses): 89 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 90 | tempaveragestr = str(tempaveragevalue) 91 | pft1matrix[precipannindex,tempaverageindex] = readdatavalue(pft1filename,tempaveragestr,precipannstr) 92 | pft2matrix[precipannindex,tempaverageindex] = readdatavalue(pft2filename,tempaveragestr,precipannstr) 93 | pft3matrix[precipannindex,tempaverageindex] = readdatavalue(pft3filename,tempaveragestr,precipannstr) 94 | 95 | climatemaskfilename = str(sys.argv[10]) 96 | 97 | climatemaskfile = open(climatemaskfilename,'r') 98 | climatemasklist = climatemaskfile.readlines() 99 | numclimatemasks = len(climatemasklist) 100 | climatemaskids = [""] * numclimatemasks 101 | climatemasktypes = [""] * numclimatemasks 102 | climatemasklowtemps = [""] * numclimatemasks 103 | climatemaskhightemps = [""] * numclimatemasks 104 | climatemasklowprecips = [""] * numclimatemasks 105 | climatemaskhighprecips = [""] * numclimatemasks 106 | pft1climatemaskindex = -1 107 | pft2climatemaskindex = -1 108 | pft3climatemaskindex = -1 109 | for climatemasklistindex in range(numclimatemasks): 110 | climatemasklistvalues = climatemasklist[climatemasklistindex].split() 111 | climatemaskids[climatemasklistindex] = climatemasklistvalues[0] 112 | climatemasktypes[climatemasklistindex] = climatemasklistvalues[1] 113 | climatemasklowtemps[climatemasklistindex] = climatemasklistvalues[2] 114 | climatemaskhightemps[climatemasklistindex] = climatemasklistvalues[3] 115 | climatemasklowprecips[climatemasklistindex] = climatemasklistvalues[4] 116 | climatemaskhighprecips[climatemasklistindex] = climatemasklistvalues[5] 117 | if (pft1climateid == climatemaskids[climatemasklistindex]): 118 | pft1climatemaskindex = climatemasklistindex 119 | if (pft2climateid == climatemaskids[climatemasklistindex]): 120 | pft2climatemaskindex = climatemasklistindex 121 | if (pft3climateid == climatemaskids[climatemasklistindex]): 122 | pft3climatemaskindex = climatemasklistindex 123 | 124 | if (pft1climatemaskindex == -1): 125 | print("Error: PFT 1 Climate Mask Id not found " + pft1filename + " - " + pft1climateid) 126 | sys.exit() 127 | 128 | pft1climatemasktype = climatemasktypes[pft1climatemaskindex] 129 | pft1climatemasklowtemp = float(climatemasklowtemps[pft1climatemaskindex]) 130 | pft1climatemaskhightemp = float(climatemaskhightemps[pft1climatemaskindex]) 131 | pft1climatemasklowprecip = float(climatemasklowprecips[pft1climatemaskindex]) 132 | pft1climatemaskhighprecip = float(climatemaskhighprecips[pft1climatemaskindex]) 133 | 134 | if (pft1climatemasktype == "+"): 135 | for precipannindex in range(numprecipclasses): 136 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 137 | for tempaverageindex in range(numtempclasses): 138 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 139 | if (tempaveragevalue < pft1climatemasklowtemp or tempaveragevalue > pft1climatemaskhightemp or precipannvalue < pft1climatemasklowprecip or precipannvalue > pft1climatemaskhighprecip): 140 | pft1matrix[precipannindex,tempaverageindex] = 0.0 141 | 142 | if (pft1climatemasktype == "-"): 143 | for precipannindex in range(numprecipclasses): 144 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 145 | for tempaverageindex in range(numtempclasses): 146 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 147 | if (tempaveragevalue >= pft1climatemasklowtemp and tempaveragevalue <= pft1climatemaskhightemp and precipannvalue >= pft1climatemasklowprecip and precipannvalue <= pft1climatemaskhighprecip): 148 | pft1matrix[precipannindex,tempaverageindex] = 0.0 149 | 150 | if (pft2climatemaskindex == -1): 151 | print("Error: PFT 2 Climate Mask Id not found " + pft2filename + " - " + pft2climateid) 152 | sys.exit() 153 | 154 | pft2climatemasktype = climatemasktypes[pft2climatemaskindex] 155 | pft2climatemasklowtemp = float(climatemasklowtemps[pft2climatemaskindex]) 156 | pft2climatemaskhightemp = float(climatemaskhightemps[pft2climatemaskindex]) 157 | pft2climatemasklowprecip = float(climatemasklowprecips[pft2climatemaskindex]) 158 | pft2climatemaskhighprecip = float(climatemaskhighprecips[pft2climatemaskindex]) 159 | 160 | if (pft2climatemasktype == "+"): 161 | for precipannindex in range(numprecipclasses): 162 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 163 | for tempaverageindex in range(numtempclasses): 164 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 165 | if (tempaveragevalue < pft2climatemasklowtemp or tempaveragevalue > pft2climatemaskhightemp or precipannvalue < pft2climatemasklowprecip or precipannvalue > pft2climatemaskhighprecip): 166 | pft2matrix[precipannindex,tempaverageindex] = 0.0 167 | 168 | if (pft2climatemasktype == "-"): 169 | for precipannindex in range(numprecipclasses): 170 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 171 | for tempaverageindex in range(numtempclasses): 172 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 173 | if (tempaveragevalue >= pft2climatemasklowtemp and tempaveragevalue <= pft2climatemaskhightemp and precipannvalue >= pft2climatemasklowprecip and precipannvalue <= pft2climatemaskhighprecip): 174 | pft2matrix[precipannindex,tempaverageindex] = 0.0 175 | 176 | if (pft3climatemaskindex == -1): 177 | print("Error: PFT 3 Climate Mask Id not found " + pft3filename + " - " + pft3climateid) 178 | sys.exit() 179 | 180 | pft3climatemasktype = climatemasktypes[pft3climatemaskindex] 181 | pft3climatemasklowtemp = float(climatemasklowtemps[pft3climatemaskindex]) 182 | pft3climatemaskhightemp = float(climatemaskhightemps[pft3climatemaskindex]) 183 | pft3climatemasklowprecip = float(climatemasklowprecips[pft3climatemaskindex]) 184 | pft3climatemaskhighprecip = float(climatemaskhighprecips[pft3climatemaskindex]) 185 | 186 | if (pft3climatemasktype == "+"): 187 | for precipannindex in range(numprecipclasses): 188 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 189 | for tempaverageindex in range(numtempclasses): 190 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 191 | if (tempaveragevalue < pft3climatemasklowtemp or tempaveragevalue > pft3climatemaskhightemp or precipannvalue < pft3climatemasklowprecip or precipannvalue > pft3climatemaskhighprecip): 192 | pft3matrix[precipannindex,tempaverageindex] = 0.0 193 | 194 | if (pft3climatemasktype == "-"): 195 | for precipannindex in range(numprecipclasses): 196 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 197 | for tempaverageindex in range(numtempclasses): 198 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 199 | if (tempaveragevalue >= pft3climatemasklowtemp and tempaveragevalue <= pft3climatemaskhightemp and precipannvalue >= pft3climatemasklowprecip and precipannvalue <= pft3climatemaskhighprecip): 200 | pft3matrix[precipannindex,tempaverageindex] = 0.0 201 | 202 | for precipannindex in range(numprecipclasses): 203 | for tempaverageindex in range(numtempclasses): 204 | pft1val = pft1matrix[precipannindex,tempaverageindex] 205 | pft2val = pft2matrix[precipannindex,tempaverageindex] 206 | pft3val = pft3matrix[precipannindex,tempaverageindex] 207 | pftsum = pft1val + pft2val + pft3val 208 | if (pftsum <= 0.0): 209 | pft1normalized = 0.0 210 | pft2normalized = 0.0 211 | pft3normalized = 0.0 212 | else: 213 | if (pft1val >= 100.0): 214 | pft1normalized = 100.0 215 | pft2normalized = 0.0 216 | pft3normalized = 0.0 217 | else: 218 | if (pft1val + pft2val >= 100.0): 219 | pft1normalized = pft1val 220 | pft2normalized = 100.0 - pft1val 221 | pft3normalized = 0.0 222 | else: 223 | if (pft1val + pft2val + pft3val >= 100.0): 224 | pft1normalized = pft1val 225 | pft2normalized = pft2val 226 | pft3normalized = 100.0 - (pft1val + pft2val) 227 | else: 228 | pft1normalized = pft1val / pftsum * 100.0 229 | pft2normalized = pft2val / pftsum * 100.0 230 | pft3normalized = pft3val / pftsum * 100.0 231 | pft1output[precipannindex,tempaverageindex] = pft1normalized 232 | pft2output[precipannindex,tempaverageindex] = pft2normalized 233 | pft3output[precipannindex,tempaverageindex] = pft3normalized 234 | 235 | # write timeseries file 236 | 237 | outputfile = open(output1filename,"w") 238 | outputline = "precipann" 239 | for tempaverageindex in range(numtempclasses): 240 | outputline = outputline + "," 241 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 242 | outputline = outputline + str(tempaveragevalue) 243 | outputline = outputline + "\n" 244 | outputfile.write(outputline) 245 | 246 | for precipannindex in range(numprecipclasses): 247 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 248 | outputline = str(precipannvalue) 249 | for tempaverageindex in range(numtempclasses): 250 | outputline = outputline + "," 251 | outputline = outputline + outputstr.format(pft1output[precipannindex,tempaverageindex]) 252 | outputline = outputline + "\n" 253 | outputfile.write(outputline) 254 | 255 | outputfile = open(output2filename,"w") 256 | outputline = "precipann" 257 | for tempaverageindex in range(numtempclasses): 258 | outputline = outputline + "," 259 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 260 | outputline = outputline + str(tempaveragevalue) 261 | outputline = outputline + "\n" 262 | outputfile.write(outputline) 263 | 264 | for precipannindex in range(numprecipclasses): 265 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 266 | outputline = str(precipannvalue) 267 | for tempaverageindex in range(numtempclasses): 268 | outputline = outputline + "," 269 | outputline = outputline + outputstr.format(pft2output[precipannindex,tempaverageindex]) 270 | outputline = outputline + "\n" 271 | outputfile.write(outputline) 272 | 273 | outputfile = open(output3filename,"w") 274 | outputline = "precipann" 275 | for tempaverageindex in range(numtempclasses): 276 | outputline = outputline + "," 277 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 278 | outputline = outputline + str(tempaveragevalue) 279 | outputline = outputline + "\n" 280 | outputfile.write(outputline) 281 | 282 | for precipannindex in range(numprecipclasses): 283 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 284 | outputline = str(precipannvalue) 285 | for tempaverageindex in range(numtempclasses): 286 | outputline = outputline + "," 287 | outputline = outputline + outputstr.format(pft3output[precipannindex,tempaverageindex]) 288 | outputline = outputline + "\n" 289 | outputfile.write(outputline) 290 | -------------------------------------------------------------------------------- /script/createluh3modiscruclimatevegetationpotentiallutfile.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | import sys 3 | import os.path 4 | import string 5 | import subprocess 6 | import datetime as date 7 | import numpy as np 8 | import xarray as xr 9 | import matplotlib.pyplot as plt 10 | import netCDF4 as netcdf4 11 | from scipy import interpolate 12 | from math import sqrt 13 | from numpy.polynomial import Chebyshev as T 14 | from numpy.polynomial import Polynomial as P 15 | 16 | # load proper modules first, i.e. 17 | # cgd machines 18 | ''' 19 | module load lang/python/2.7.14 20 | 21 | ''' 22 | 23 | def readdatavalue(datasetfilename,variable1name,variable2name): 24 | datasetfile = open(datasetfilename,'r') 25 | datasetlist = datasetfile.readlines() 26 | numdatasetlist = len(datasetlist) 27 | variablelist = datasetlist[0].strip().split(",") 28 | numvariablelist = len(variablelist) 29 | variable1index = -1 30 | variable2index = -1 31 | datasetvalue = 0.0 32 | for variablesearchindex in range(numvariablelist): 33 | if (variable1name == variablelist[variablesearchindex]): 34 | variable1index = variablesearchindex 35 | if (variable1index == -1): 36 | print("Warning: " + datasetfilename + " Variable Not Found " + variable1name) 37 | else: 38 | for datasetlistindex in range(numdatasetlist): 39 | valuelist = datasetlist[datasetlistindex].split(",") 40 | if (variable2name == valuelist[0]): 41 | variable2index = datasetlistindex 42 | datasetvalue = float(valuelist[variable1index]) 43 | if (variable2index == -1): 44 | print("Warning: " + datasetfilename + " Variable Not Found " + variable2name) 45 | 46 | return datasetvalue 47 | 48 | 49 | #-- end of function definitions --------------------------------- 50 | 51 | # process the input arguments 52 | 53 | arguments = len(sys.argv) - 1 54 | 55 | if (arguments != 8): 56 | print("Error: Usage createrawglobalmonthlyareasumdata.py landuse1filename landuse1weight landuse2filename landuse2weight landuse3filename landuse3weight landuseallfilename outputfilename") 57 | sys.exit() 58 | else: 59 | print("Processing: " + str(sys.argv[1]) + " => " + str(sys.argv[7])) 60 | 61 | landuse1filename = str(sys.argv[1]) 62 | landuse1weight = str(sys.argv[2]) 63 | landuse1weightvalue = float(landuse1weight) 64 | landuse2filename = str(sys.argv[3]) 65 | landuse2weight = str(sys.argv[4]) 66 | landuse2weightvalue = float(landuse2weight) 67 | landuse3filename = str(sys.argv[5]) 68 | landuse3weight = str(sys.argv[6]) 69 | landuse3weightvalue = float(landuse3weight) 70 | landuseallfilename = str(sys.argv[7]) 71 | 72 | numprecipclasses = 100 73 | precipclassstart = 0.0 74 | precipclasssize = 50.0 75 | numtempclasses = 100 76 | tempclassstart = -15.0 77 | tempclasssize = 0.5 78 | landuse1matrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 79 | landuse2matrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 80 | landuse3matrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 81 | landuseallmatrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 82 | fullmatrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 83 | polymatrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 84 | finalmatrix = np.zeros(shape=(numprecipclasses,numtempclasses),dtype=np.float) 85 | outputfilename = str(sys.argv[8]) 86 | outputstr = "{0:.3f}" 87 | 88 | for precipannindex in range(numprecipclasses): 89 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 90 | precipannstr = str(precipannvalue) 91 | for tempaverageindex in range(numtempclasses): 92 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 93 | tempaveragestr = str(tempaveragevalue) 94 | landuse1matrix[precipannindex,tempaverageindex] = readdatavalue(landuse1filename,tempaveragestr,precipannstr) * landuse1weightvalue 95 | landuse2matrix[precipannindex,tempaverageindex] = readdatavalue(landuse2filename,tempaveragestr,precipannstr) * landuse2weightvalue 96 | landuse3matrix[precipannindex,tempaverageindex] = readdatavalue(landuse3filename,tempaveragestr,precipannstr) * landuse3weightvalue 97 | landuseallmatrix[precipannindex,tempaverageindex] = readdatavalue(landuseallfilename,tempaveragestr,precipannstr) 98 | 99 | for precipannindex in range(numprecipclasses): 100 | for tempaverageindex in range(numtempclasses): 101 | if (landuse1matrix[precipannindex,tempaverageindex] > 0.0): 102 | fullmatrix[precipannindex,tempaverageindex] = landuse1matrix[precipannindex,tempaverageindex] 103 | else: 104 | if (landuse2matrix[precipannindex,tempaverageindex] > 0.0): 105 | fullmatrix[precipannindex,tempaverageindex] = landuse2matrix[precipannindex,tempaverageindex] 106 | else: 107 | if (landuse3matrix[precipannindex,tempaverageindex] > 0.0): 108 | fullmatrix[precipannindex,tempaverageindex] = landuse3matrix[precipannindex,tempaverageindex] 109 | 110 | for precipannindex in range(numprecipclasses): 111 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 112 | for tempaverageindex in range(numtempclasses): 113 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 114 | numtempvalues = 0 115 | tempnear = 0 116 | precipnear = 0 117 | for tempsearchindex in range(numtempclasses): 118 | if (fullmatrix[precipannindex,tempsearchindex] > 0.0): 119 | numtempvalues += 1 120 | if (numtempvalues > 1): 121 | tempvaluearray = np.zeros(shape=(numtempvalues),dtype=np.float64) 122 | pftvaluearray = np.zeros(shape=(numtempvalues),dtype=np.float64) 123 | tempvalueindex = 0 124 | for tempsearchindex in range(numtempclasses): 125 | if (fullmatrix[precipannindex,tempsearchindex] > 0.0): 126 | tempvaluearray[tempvalueindex] = tempclassstart + float(tempsearchindex) * tempclasssize 127 | pftvaluearray[tempvalueindex] = fullmatrix[precipannindex,tempsearchindex] 128 | tempdistance = abs(tempsearchindex - tempaverageindex) 129 | if (tempdistance < 2): 130 | tempnear = 1 131 | tempvalueindex += 1 132 | tcoeff = P.fit(tempvaluearray, pftvaluearray, deg=3) 133 | tcoeffvals = tcoeff.convert().coef 134 | if (len(tcoeffvals) >= 4): 135 | pftvaluetemppoly = tcoeffvals[0] + tcoeffvals[1] * tempaveragevalue + tcoeffvals[2] * pow(tempaveragevalue,2) + tcoeffvals[3] * pow(tempaveragevalue,3) 136 | if (len(tcoeffvals) == 3): 137 | pftvaluetemppoly = tcoeffvals[0] + tcoeffvals[1] * tempaveragevalue + tcoeffvals[2] * pow(tempaveragevalue,2) 138 | if (pftvaluetemppoly < 0.0): 139 | tempnear = 0 140 | else: 141 | pftvaluetemppoly = 0.0 142 | numprecipvalues = 0 143 | for precipsearchindex in range(numprecipclasses): 144 | if (fullmatrix[precipsearchindex,tempaverageindex] > 0.0): 145 | numprecipvalues += 1 146 | if (numprecipvalues > 1): 147 | precipvaluearray = np.zeros(shape=(numprecipvalues),dtype=np.float64) 148 | pftvaluearray = np.zeros(shape=(numprecipvalues),dtype=np.float64) 149 | precipvalueindex = 0 150 | for precipsearchindex in range(numprecipclasses): 151 | if (fullmatrix[precipsearchindex,tempaverageindex] > 0.0): 152 | precipvaluearray[precipvalueindex] = precipclassstart + float(precipsearchindex) * precipclasssize 153 | pftvaluearray[precipvalueindex] = fullmatrix[precipsearchindex,tempaverageindex] 154 | precipdistance = abs(precipsearchindex - precipannindex) 155 | if (precipdistance < 3): 156 | precipnear = 1 157 | precipvalueindex += 1 158 | pcoeff = P.fit(precipvaluearray, pftvaluearray, deg=3) 159 | pcoeffvals = pcoeff.convert().coef 160 | if (len(pcoeffvals) >= 4): 161 | pftvalueprecippoly = pcoeffvals[0] + pcoeffvals[1] * precipannvalue + pcoeffvals[2] * pow(precipannvalue,2) + pcoeffvals[3] * pow(precipannvalue,3) 162 | if (len(pcoeffvals) == 3): 163 | pftvalueprecippoly = pcoeffvals[0] + pcoeffvals[1] * precipannvalue + pcoeffvals[2] * pow(precipannvalue,2) 164 | if (pftvalueprecippoly < 0.0): 165 | precipnear = 0 166 | else: 167 | pftvalueprecippoly = 0.0 168 | pftvaluepoly = 0.0 169 | if (tempnear == 1 and precipnear == 1): 170 | pftvaluepoly = (pftvaluetemppoly + pftvalueprecippoly) / 2.0 171 | if (tempnear == 0 and precipnear == 1): 172 | pftvaluepoly = pftvalueprecippoly 173 | if (tempnear == 1 and precipnear == 0): 174 | pftvaluepoly = pftvaluetemppoly 175 | 176 | polymatrix[precipannindex,tempaverageindex] = pftvaluepoly 177 | if (polymatrix[precipannindex,tempaverageindex] < 0.0): 178 | polymatrix[precipannindex,tempaverageindex] = 0.0 179 | 180 | for precipannindex in range(numprecipclasses): 181 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 182 | for tempaverageindex in range(numtempclasses): 183 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 184 | numtempvalues = 0 185 | tempnear = 0 186 | precipnear = 0 187 | for tempsearchindex in range(numtempclasses): 188 | if (polymatrix[precipannindex,tempsearchindex] > 0.0): 189 | numtempvalues += 1 190 | if (numtempvalues > 1): 191 | tempvaluearray = np.zeros(shape=(numtempvalues),dtype=np.float64) 192 | pftvaluearray = np.zeros(shape=(numtempvalues),dtype=np.float64) 193 | tempvalueindex = 0 194 | for tempsearchindex in range(numtempclasses): 195 | if (polymatrix[precipannindex,tempsearchindex] > 0.0): 196 | tempvaluearray[tempvalueindex] = tempclassstart + float(tempsearchindex) * tempclasssize 197 | pftvaluearray[tempvalueindex] = polymatrix[precipannindex,tempsearchindex] 198 | tempdistance = abs(tempsearchindex - tempaverageindex) 199 | if (tempdistance < 6): 200 | tempnear = 1 201 | tempvalueindex += 1 202 | tcoeff = P.fit(tempvaluearray, pftvaluearray, deg=3) 203 | tcoeffvals = tcoeff.convert().coef 204 | if (len(tcoeffvals) >= 4): 205 | pftvaluetemppoly = tcoeffvals[0] + tcoeffvals[1] * tempaveragevalue + tcoeffvals[2] * pow(tempaveragevalue,2) + tcoeffvals[3] * pow(tempaveragevalue,3) 206 | if (len(tcoeffvals) == 3): 207 | pftvaluetemppoly = tcoeffvals[0] + tcoeffvals[1] * tempaveragevalue + tcoeffvals[2] * pow(tempaveragevalue,2) 208 | if (pftvaluetemppoly < 0.0): 209 | tempnear = 0 210 | else: 211 | pftvaluetemppoly = 0.0 212 | numprecipvalues = 0 213 | for precipsearchindex in range(numprecipclasses): 214 | if (polymatrix[precipsearchindex,tempaverageindex] > 0.0): 215 | numprecipvalues += 1 216 | if (numprecipvalues > 1): 217 | precipvaluearray = np.zeros(shape=(numprecipvalues),dtype=np.float64) 218 | pftvaluearray = np.zeros(shape=(numprecipvalues),dtype=np.float64) 219 | precipvalueindex = 0 220 | for precipsearchindex in range(numprecipclasses): 221 | if (polymatrix[precipsearchindex,tempaverageindex] > 0.0): 222 | precipvaluearray[precipvalueindex] = precipclassstart + float(precipsearchindex) * precipclasssize 223 | pftvaluearray[precipvalueindex] = polymatrix[precipsearchindex,tempaverageindex] 224 | precipdistance = abs(precipsearchindex - precipannindex) 225 | if (precipdistance < 6): 226 | precipnear = 1 227 | precipvalueindex += 1 228 | pcoeff = P.fit(precipvaluearray, pftvaluearray, deg=3) 229 | pcoeffvals = pcoeff.convert().coef 230 | if (len(pcoeffvals) >= 4): 231 | pftvalueprecippoly = pcoeffvals[0] + pcoeffvals[1] * precipannvalue + pcoeffvals[2] * pow(precipannvalue,2) + pcoeffvals[3] * pow(precipannvalue,3) 232 | if (len(pcoeffvals) == 3): 233 | pftvalueprecippoly = pcoeffvals[0] + pcoeffvals[1] * precipannvalue + pcoeffvals[2] * pow(precipannvalue,2) 234 | if (pftvalueprecippoly < 0.0): 235 | precipnear = 0 236 | else: 237 | pftvalueprecippoly = 0.0 238 | pftvaluepoly = 0.0 239 | if (tempnear == 1 and precipnear == 1): 240 | pftvaluepoly = (pftvaluetemppoly + pftvalueprecippoly) / 2.0 241 | if (tempnear == 0 and precipnear == 1): 242 | pftvaluepoly = pftvalueprecippoly 243 | if (tempnear == 1 and precipnear == 0): 244 | pftvaluepoly = pftvaluetemppoly 245 | 246 | finalmatrix[precipannindex,tempaverageindex] = pftvaluepoly 247 | if (finalmatrix[precipannindex,tempaverageindex] < 0.0): 248 | finalmatrix[precipannindex,tempaverageindex] = 0.0 249 | if (finalmatrix[precipannindex,tempaverageindex] > 100.0): 250 | finalmatrix[precipannindex,tempaverageindex] = 100.0 251 | 252 | for precipannindex in range(numprecipclasses): 253 | for tempaverageindex in range(numtempclasses): 254 | landuseallfound = 0 255 | if (landuseallmatrix[precipannindex,tempaverageindex] > 0.0): 256 | landuseallfound = 1 257 | 258 | if (landuseallfound == 0): 259 | if (precipannindex > 0): 260 | landuseleftaverage = np.average(landuseallmatrix[0:precipannindex+1,tempaverageindex]) 261 | else: 262 | landuseleftaverage = 0.0 263 | if (precipannindex < numprecipclasses-1): 264 | landuserightaverage = np.average(landuseallmatrix[precipannindex:numprecipclasses,tempaverageindex]) 265 | else: 266 | landuserightaverage = 0.0 267 | if (tempaverageindex > 0): 268 | landusebottomaverage = np.average(landuseallmatrix[precipannindex,0:tempaverageindex+1]) 269 | else: 270 | landuseleftaverage = 0.0 271 | if (tempaverageindex < numprecipclasses-1): 272 | landusetopaverage = np.average(landuseallmatrix[precipannindex,tempaverageindex:numtempclasses]) 273 | else: 274 | landuserightaverage = 0.0 275 | if (landuseleftaverage > 0.0 and landuserightaverage > 0.0 and landusebottomaverage > 0.0 and landusetopaverage > 0.0): 276 | landuseallfound = 1 277 | 278 | if (landuseallfound == 0): 279 | finalmatrix[precipannindex,tempaverageindex] = 0.0 280 | 281 | # write timeseries file 282 | 283 | outputfile = open(outputfilename,"w") 284 | outputline = "precipann" 285 | for tempaverageindex in range(numtempclasses): 286 | outputline = outputline + "," 287 | tempaveragevalue = tempclassstart + float(tempaverageindex) * tempclasssize 288 | outputline = outputline + str(tempaveragevalue) 289 | outputline = outputline + "\n" 290 | outputfile.write(outputline) 291 | 292 | for precipannindex in range(numprecipclasses): 293 | precipannvalue = precipclassstart + float(precipannindex) * precipclasssize 294 | outputline = str(precipannvalue) 295 | for tempaverageindex in range(numtempclasses): 296 | outputline = outputline + "," 297 | outputline = outputline + outputstr.format(finalmatrix[precipannindex,tempaverageindex]) 298 | outputline = outputline + "\n" 299 | outputfile.write(outputline) 300 | --------------------------------------------------------------------------------