Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding new Feature/pavd #91

Merged
merged 82 commits into from
Jan 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
18f88ef
Initial commit of new input PAVD feature.
drnimbusrain Jul 25, 2023
f65fe9a
Updated README
drnimbusrain Jul 25, 2023
3e2fa5a
Adding new routines to read/interpolate pavd.
drnimbusrain Jul 26, 2023
a6c7f20
Added initial PAVD-to-FAFRAC calculation.
drnimbusrain Jul 26, 2023
b910df2
Updated input pavd file (still issues with profile).
drnimbusrain Jul 28, 2023
13718ad
Merge branch 'develop' into feature/pavd
drnimbusrain Jul 28, 2023
6859d5d
Merge branch 'develop' into feature/pavd
drnimbusrain Jul 29, 2023
828bb51
Added Latitude (52 degree) criteria on PAVD.
drnimbusrain Aug 2, 2023
93ae963
Added a pavd_set latitude threshold.
drnimbusrain Sep 11, 2023
b20f913
Merge branch 'develop' into feature/pavd
drnimbusrain Sep 25, 2023
c2bd964
Merge branch 'develop' into feature/pavd
drnimbusrain Oct 9, 2023
bd8c5f2
Fixed warning on unused dummy argument.
drnimbusrain Oct 10, 2023
b9ad49e
Fixed canopy_calcs too.
drnimbusrain Oct 10, 2023
5561667
Update daily LAI
angehung5 Oct 13, 2023
00e607d
Update txt file
angehung5 Oct 14, 2023
1146880
Update README.md
drnimbusrain Oct 14, 2023
1caad6f
Merge pull request #95 from angehung5/main
drnimbusrain Oct 19, 2023
d3fc617
Add lev to SE file
angehung5 Oct 25, 2023
a9f72da
Delete input/canopy.t12z.20220630.testf023.southeast.nc
angehung5 Oct 25, 2023
7b6a498
Delete input/canopy.t12z.20220701.testf000.southeast.nc
angehung5 Oct 25, 2023
edb6e11
Delete input/canopy.t12z.20220701.testf001.southeast.nc
angehung5 Oct 25, 2023
d926e17
Add lev
angehung5 Oct 25, 2023
6bdd8c7
Delete input/gfs.t12z.20220701.sfcf001.scanopy.nc
angehung5 Oct 25, 2023
adde14f
Add lev
angehung5 Oct 25, 2023
6cc787d
update PAVD
angehung5 Oct 28, 2023
92ab8ca
update PAVD
angehung5 Oct 28, 2023
f8eadbc
Updated python README and slurm script for global runs.
drnimbusrain Nov 6, 2023
1f67b63
Updated python/README and slurm script for global.
drnimbusrain Nov 6, 2023
7f5dd88
Updated for global python and run examples.
drnimbusrain Nov 6, 2023
0518288
Updated for global example scripts.
drnimbusrain Nov 6, 2023
a9f6988
Updated python/README for global run example.
drnimbusrain Nov 6, 2023
2bcab72
Removed global example and slurm scripts, better in separate PR.
drnimbusrain Nov 7, 2023
bb14273
Merge branch 'develop' into feature/pavd
drnimbusrain Nov 13, 2023
e5fa486
Testing new PAVD and adding some conditions.
drnimbusrain Nov 14, 2023
055fbbe
Add files via upload
angehung5 Nov 14, 2023
80c1053
Removed .nc SE test files.
drnimbusrain Nov 14, 2023
912adae
Adding updated SE .nc files back.
drnimbusrain Nov 14, 2023
5f2402e
Turned debug prints on for i=25 and j=25.
drnimbusrain Nov 15, 2023
65397fe
Commented out debug prints and updated README.
drnimbusrain Nov 15, 2023
7b170e7
Updated NL for PAVD options.
drnimbusrain Nov 15, 2023
6bd5c0f
Adding clarifications and TODOs for upcoming PAVD text inputs.
drnimbusrain Nov 15, 2023
9833dca
Merge branch 'develop' into feature/pavd
drnimbusrain Nov 15, 2023
bb821cf
Update CH
angehung5 Nov 15, 2023
bfb0b04
Delete input/gfs.t12z.20220630.sfcf023.canopy.txt
angehung5 Nov 15, 2023
b05e5aa
Delete input/gfs.t12z.20220701.sfcf000.canopy.txt
angehung5 Nov 15, 2023
997b58b
Delete input/gfs.t12z.20220701.sfcf001.canopy.txt
angehung5 Nov 15, 2023
139cfc4
Reupload text file
angehung5 Nov 15, 2023
5b46507
Update NAU CH
angehung5 Nov 15, 2023
492cf3e
Update point_file_20220630.sfcf023.txt
angehung5 Nov 15, 2023
b14f795
Update point_file_20220701.sfcf000.txt
angehung5 Nov 15, 2023
85d9728
Update point_file_20220701.sfcf001.txt
angehung5 Nov 15, 2023
10be84a
Update point file
angehung5 Nov 15, 2023
40fbeb0
Update NAU CH
angehung5 Nov 15, 2023
4eb22c3
Delete input/canopy.t12z.20220630.testf023.southeast.txt
angehung5 Nov 15, 2023
8b67432
Delete input/canopy.t12z.20220701.testf000.southeast.txt
angehung5 Nov 15, 2023
4084c0e
Delete input/canopy.t12z.20220701.testf001.southeast.txt
angehung5 Nov 15, 2023
bf3fcbc
Change vtype to fit fch
angehung5 Nov 16, 2023
bfd99a8
Change vtype to fit fch
angehung5 Nov 16, 2023
8db5b4f
Change vtype to fit fch
angehung5 Nov 16, 2023
9cf527a
add point pavd text file
angehung5 Nov 29, 2023
b48f094
add point pavd text file
angehung5 Nov 29, 2023
7dd422a
New functionality to read/test PAVD from text file.
drnimbusrain Dec 6, 2023
7f81aba
Changing NL back to defaults.
drnimbusrain Dec 6, 2023
b44fc0b
Update CH
angehung5 Dec 7, 2023
53de8dc
Update FH data source
angehung5 Dec 7, 2023
97e047e
Update FH
angehung5 Dec 7, 2023
47fee78
Update FH
angehung5 Dec 7, 2023
bd198f8
Update FH
angehung5 Dec 7, 2023
496b631
Update FH and vtype
angehung5 Dec 7, 2023
372904b
Update a new point
angehung5 Dec 8, 2023
dd8522a
Update a new point
angehung5 Dec 8, 2023
316fbe1
Update a new point
angehung5 Dec 8, 2023
b0feb02
Update a new point
angehung5 Dec 8, 2023
9d17239
Update a new point
angehung5 Dec 8, 2023
a99f680
Update a new point
angehung5 Dec 8, 2023
733b8d2
Initial changes to PAVD for shape distribution conversion.
drnimbusrain Dec 8, 2023
df35049
Merge branch 'feature/pavd' of https://github.com/noaa-oar-arl/canopy…
drnimbusrain Dec 8, 2023
9c5e408
Updating PAVD method to use only zcanmax.
drnimbusrain Dec 8, 2023
8b3193f
Merge branch 'develop' into feature/pavd
drnimbusrain Dec 13, 2023
5f1ecd7
Merge branch 'develop' into feature/pavd
drnimbusrain Dec 18, 2023
a74b94b
Edit the description of pavd_set
angehung5 Jan 3, 2024
c507035
Added PAVD condition if ZK (at max GEDI PAVD height) > GEDI FCH.
drnimbusrain Jan 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Authors: Patrick Campbell, Zachary Moon, and Wei-Ting Hung

### Build

Canopy-App requires NetCDF-Fortran Libraries (i.e., `-lnetcdf -lnetcdff`) when using the 2D NetCDF I/O Option (i.e., `infmt_opt=0`).
Canopy-App requires NetCDF-Fortran Libraries (i.e., `-lnetcdf -lnetcdff`) when using the 1D/2D NetCDF I/O Option (i.e., `infmt_opt=0`).
See [the included Makefile](./src/Makefile), which detects NetCDF using `nf-config`, for an example (on GMU Hopper, you can use the `netcdf-c/4.7.4-vh` and `netcdf-fortran/4.5.3-ff` modules).

Compilation options can be controlled with environment variables:
Expand Down Expand Up @@ -118,7 +118,7 @@ Namelist Option : `file_out` Prefix string (e.g., `'test'`) used to name output

## Inputs and Settings

**Current Canopy-App Input:** Typical 1D or 2D (time=1,lat,lon) gridded atmospheric model input variables in 1st layer above canopy
**Current Canopy-App Input:** Typical 1D or 2D (time=1,lat,lon) gridded atmospheric model input variables in 1st layer above canopy. Some 3D inputs are supported (see `var3d_opt` in [Table 3](#table-3-current-user-namelist-options) and associated options).

Namelist Option : `file_vars` Full name of input file (Supports either text or NetCDF format with following formats: `.txt`, `.nc`, `.ncf`, or `.nc4`)

Expand Down Expand Up @@ -150,11 +150,12 @@ The Canopy-App input data in [Table 2](#table-2-canopy-app-required-input-variab
| `hpbl` | Height of the planetary boundary layer (m) | UFS NOAA/GFSv16 |
| `prate_ave` | Average mass precipitation rate (kg m-2 s-1) | UFS NOAA/GFSv16 |
| **External Canopy Variables** | **Variable Description and Units** | **Data Source/Reference (if necessary)** |
| `fh` | Forest canopy height (m) | Fused GEDI/Landsat data. Data Period=2020. Data frequency=Annual. ([Potapov et al., 2020](https://doi.org/10.1016/j.rse.2020.112165)) |
| `fh` | Canopy height (m) | Globally extended GEDI data. Data Period=2020. Data frequency=Annual. ([Lang et al., 2023](https://doi.org/10.1038/s41559-023-02206-6)) |
| `clu` | Forest clumping index (dimensionless) | GriddingMachine/MODIS. Data Period=2001-2017 Climatology. Data frequency=Monthly. ([Wei et al., 2019](https://doi.org/10.1016/j.rse.2019.111296)). Extended globally for high latitudes using methods described [here](https://gmuedu-my.sharepoint.com/:w:/g/personal/whung_gmu_edu/EdglXmW2kzBDtDj1xV0alGcB1Yo2I8hzdyWGVGB2YOTfgw). |
| `lai` | Leaf area index (m2/m2) | VIIRS-NPP. Data Period=2020. Data frequency=Daily, interpolated from original 8-day product. ([Myneni 2018](https://doi.org/10.5067/VIIRS/VNP15A2H.001)). Extended globally for high latitudes using methods described [here](https://gmuedu-my.sharepoint.com/:w:/g/personal/whung_gmu_edu/EdglXmW2kzBDtDj1xV0alGcB1Yo2I8hzdyWGVGB2YOTfgw). |
| `ffrac` | Forest fraction (dimensionless) | Based on [VIIRS GVF-NPP](https://www.star.nesdis.noaa.gov/jpss/gvf.php) and GriddingMachine/MODIS FFRAC/FVC from Terra. Data Period=2020. Data frequency=Annual. ([DiMiceli et al., 2022](https://doi.org/10.5067/MODIS/MOD44B.061)). Extended globally for high latitudes using methods described [here](https://gmuedu-my.sharepoint.com/:w:/g/personal/whung_gmu_edu/EdglXmW2kzBDtDj1xV0alGcB1Yo2I8hzdyWGVGB2YOTfgw). |
| `pavd` | Plant area volume density (m2/m3) | [GEDI product from North Arizona University](https://goetzlab.rc.nau.edu/index.php/gedi/). Data Period=201904-202212 Climatology. Data frequency=Annual. Three dimensional structure of plant area volume density with 14 vertical layers from the surface (0 m) to 70 m above ground level. Data at each layer represents the average pavd within certain height range (e.g. 0 - 5 m for first layer). |
| `lev` | Height AGL for levels associated with optional pavd (or other canopy profile) inputs (m) | Same as for GEDI PAVD (or other canopy profile inputs) above |
| **Other External Variables** | **Variable Description and Units** | **Data Source/Reference (if necessary)** |
| `frp` | Total Fire Radiative Power (MW/grid cell area) | [NOAA/NESDIS GBBEPx](https://www.ospo.noaa.gov/Products/land/gbbepx/) |
| `csz` | Cosine of the solar zenith angle (dimensionless) | [Based on Python Pysolar](https://pysolar.readthedocs.io/en/latest/) |
Expand All @@ -178,7 +179,7 @@ Hourly gridded GFSv16 data is available on AWS from March 23, 2021 - Current Day

**Downloading Example Canopy Files from AWS:** Example monthly, global gridded files containing all GFSv16 met/land/soil data from 2022 combined with external canopy and other external variables (regridded to GFSv16 13 km resolution) described above may also be downloaded via AWS S3 location:
```
https://nacc-in-the-cloud.s3.amazonaws.com/inputs/geo-files/gfs.canopy.t12z.2022MM01.sfcf000.nc
https://nacc-in-the-cloud.s3.amazonaws.com/inputs/geo-files/gfs.canopy.t12z.2022MMDD.sfcf000.nc
```

You can also [generate global inputs using Python (see python/global_data_process.py)](./python/README.md).
Expand All @@ -189,7 +190,7 @@ You can also [generate global inputs using Python (see python/global_data_proces
| Namelist Option | Namelist Description and Units |
| --------------- | ---------------------------------------------------------------------------------- |
| | **Input model format options** |
| `infmt_opt` | integer for choosing 1D text (= `1`) or 2D NetCDF input file format (= `0`, default) |
| `infmt_opt` | integer for choosing 1D or 2D text (= `1`) or 2D NetCDF input file format (= `0`, default) |
| | **Input model grid sizes** |
| `nlat` | number of latitude cells (must match # of LAT in `file_vars` above) |
| `nlon` | number of longitude cells (must match # of LON in `file_vars` above) |
Expand All @@ -198,15 +199,21 @@ You can also [generate global inputs using Python (see python/global_data_proces
| `time_end` | End time stamp in YYYY-MM-DD-HH:MM:SS.SSSS for simulation/observation inputs |
| `ntime` | Number of time steps for simulation/observation inputs |
| `time_intvl` | Integer time interval for simulation/observation input time steps in seconds (e.g. 3600 for hourly time stpes and 24*3600 for daily time steps) |
| | **Canopy model vegetation/land use input dataset options** |
| `lu_opt` | integer for input model land use type (`0`: VIIRS 17 Cat (default) or `1`: MODIS-IGBP 20 Cat (valid LU types 1-10 and 12); input mapped to Massman et al.) |
| | **Input model 3d NetCDF variable options |
| `var3d_opt` | integer for selecting to use 3D variable in NetCDF file (e.g., 'PAVD') or to read supplementary canopy text file inputs (`file_canvars`). (= `0`, default, off) or (= `1`, on). `file_canvars` read only when `infmt_opt` = 1 and `var3d_opt` = 1. This is used with the number of levels defined by `var3d_set` below |
| `var3d_set` | integer for selecting number of 3D input levels, only used when setting `var3d_opt= `1`, default = 14 (Note: For input text file the max current levels can only be 14, please input according to example data) |
| | **Options to use observed PAVD profiles and latitude threshold |
| `pavd_opt` | integer for choosing to use GEDI 3D input PAVD profiles instead of prescribed plant distribution functions (= `0`, default, off) or (= `1`, on); Note: To use this option, must set `var3d_set= `1`, and the 3D pavd variable must be available in the input NetCDF file (i.e., `file_vars`) or in new auxilliary 3D PAVD text file |
| `pavd_set` | real value for +/- latitude threshold within to use observed GEDI 3D PAVD profiles instead of prescribed plant distribution functions. Used only if `pavd_opt=1`. Default = 52.0 degrees latitude. |
| | **Canopy model vertical layers** |
| `modlays` | number of model (below and above canopy) layers |
| `modres` | above and below canopy model vertical resolution (m) |
| | **Contiguous canopy model thresholds** |
| `lai_thresh` | user-set real value of LAI threshold for contiguous canopy (m2/m2) |
| `frt_thresh` | user-set real value of forest fraction threshold for contiguous canopy |
| `fch_thresh` | user-set real value of canopy height threshold for contiguous canopy (m) |
| | **Canopy model vegetation/land use input dataset options** |
| `lu_opt` | integer for input model land use type (`0`: VIIRS 17 Cat (default) or `1`: MODIS-IGBP 20 Cat (valid LU types 1-10 and 12); input mapped to Massman et al.) |
| | **Canopy crop and shrub/savanna/grass extension options** |
| `ssg_opt` | integer for using either input data (= `0`, default) or user set shrub/savanna/grass (SSG) vegetation type heights from namelist (= `1`). Currently, GEDI FCH input data only provides canopy heights for forests and not SSG. Warning: use of ssg_opt=1 will overide typically higher resolution input data (e.g., GEDI) forest canopy heights where the lower resolution vegtype data indicates SSG |
| `ssg_set` | user-set real value of constant SSG vegetation type heights (m) (only used if `ssg_opt=1`) |
Expand Down
Binary file modified input/gfs.t12z.20220630.sfcf023.canopy.nc
Binary file not shown.
Loading