BackgroundΒΆ
The final project of GEOG 4463-5463 (Earth Analytics Bootcamp) is to look into building a habitat suitability model for Sorghasstrum Nutans.
In the past 50 years, its range has been moving northward according to Global Biodiversity Information Facility at https://www.gbif.org/species/2704414.
In this notebook, I am demonstrating the ability to analyze three study sites by utilizing modular, reproducible for loops and functions, so you may add as different/additional study sites into this notebook as needed.
A quick search online suggests Sorghasstrum Nutans, also known as "Tomahawk" Indiangrass, favors these conditions:
- moderate elevations and open woodlands,
- average annual precipitation ranged from 15 to 50 inches (average monthly ~32mm to ~64 mm)
- neutral soil pH (slightly acidic would be okay but will not adapted well to highly saline or alkaline conditions)
- moist, well drained soil
Tober, D. A. (2009). Indiangrass (Sorghastrum Nutans): Biomass Trials North Dakota, South Dakota, and Minnesota. Agriculture Department, Natural Resources Conservation Service. https://www.govinfo.gov/app/details/GOVPUB-A57-PURL-gpo1710
Data PreparationΒΆ
I loosely selected three study sites near me: Oglala National Grassland (Nebraska), Pawnee National Grassland (Colorado), and Fort Pierre National Grassland (South Dakota).
Data Source #1: Forest Service National Grassland BoundariesΒΆ
Before downloading my raster data, I need to begin with getting my shape files, which is collected and maintained by Forest Service programs at https://data.fs.usda.gov/geodata/edw/datasets.php
Data CitationΒΆ
United States Forest Service (USFS). (2023). U.S. National Grassland Shapefiles [Data set]. USFS Enterprise Data Warehouse. Accessed 2023-12-18 from https://data.fs.usda.gov/geodata/edw/edw_resources/shp/S_USA.NationalGrassland.zip
NATIONALGR | GIS_ACRES | SHAPE_AREA | SHAPE_LEN | geometry | |
---|---|---|---|---|---|
GRASSLANDN | |||||
Oglala National Grassland | 295521010328 | 215804.927 | 0.096279 | 1.970612 | POLYGON ((-103.72477 43.00100, -103.72007 43.0... |
Pawnee National Grassland | 295523010328 | 208424.885 | 0.089972 | 15.341594 | MULTIPOLYGON (((-104.58106 40.82664, -104.5810... |
Fort Pierre National Grassland | 281771010328 | 209044.225 | 0.095149 | 1.455518 | POLYGON ((-100.08409 44.28162, -100.08409 44.2... |
Data Source #2: SRTM Elevation Data (2000)ΒΆ
Next, I downloaded my elevation data, NASA Shuttle Radar Topography Mission (SRTM) dataset, available from the APPEEARS API at https://appeears.earthdatacloud.nasa.gov/
Fun Fact:
NASA Shuttle Radar Topography Mission (SRTM) datasets result from a collaborative effort by the National Aeronautics and Space Administration (NASA) and the National Geospatial-Intelligence Agency (NGA - previously known as the National Imagery and Mapping Agency, or NIMA), as well as the participation of the German and Italian space agencies. The purpose of SRTM was to generate a near-global digital elevation model (DEM) of the Earth using radar interferometry. SRTM was a primary component of the payload on the Space Shuttle Endeavour during its STS-99 mission. Endeavour launched February 11, 2000 and ο¬ew for 11 days. (https://lpdaac.usgs.gov/products/srtmgl1v003/)
Data CitationΒΆ
NASA JPL (2013). NASA Shuttle Radar Topography Mission Global 1 arc second [Data set]. NASA EOSDIS Land Processes Distributed Active Archive Center. Accessed 2023-12-18 from https://doi.org/10.5067/MEaSUREs/SRTM/SRTMGL1.003
In this section, I am demonstrating the ability to calculate a derived topographic variable to use in the model:
for index, grassland in enumerate(grasslands):
elevation_data = [rxr.open_rasterio(path, masked=True).squeeze() for path in grasslands[index]['srtm_paths']][0]
grasslands[index]['elevation_data'] = elevation_data
for index, grassland in enumerate(grasslands):
"""
Calculate the aspect of the elevation data for each grassland and create an elevation plot.
"""
elevation_plot = xrspatial.aspect(grasslands[index]['elevation_data']).hvplot.image(
rasterize=True, cmap='BrBG_r',
xlabel='Longitude', ylabel='Latitude',
colorbar=True,
clim=(0, 400),
x='x', y='y', crs=grasslands[index]['utm_epsg'])
grasslands[index]['elevation_plot'] = elevation_plot
Elevation MapsΒΆ
Elevation AspectΒΆ
Data Source # 3 Soil Variable - Polaris pH (2019)ΒΆ
Following the elevation data, I downloaded POLARIS soil property (pH) published by Duke University. Additional details at https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2018WR022797
Data CitationΒΆ
Duke University. (2019). POLARIS Soil Properties v1.0: pH Mean 60-100 cm Depth [Data set]. Duke University Hydrology Laboratory. Accessed 2023-12-18 from http://hydrology.cee.duke.edu/POLARIS/PROPERTIES/v1.0/ph/mean/60_100/
Soil pH MapsΒΆ
Data Source # 4 MACAv2ΒΆ
Last, I downloaded two climate variables (precipitation and specific humidity) from Northwest Knowledge at https://climate.northwestknowledge.net/MACA/data_catalogs.php
HistoricalΒΆ
Climate Variable: Precipitation (mm)ΒΆ
Monthly Precipitation Amount - Total monthly precipitation at surface: includes both liquid and solid phases from all types of clouds (both large-scale and convective) (sum(interval: 24 hours): sum over days)
Data CitationΒΆ
Northwest Knowledge Network. (2023). MACAv2 Metdata Precipitation Data - CCSM4 Historical 1950-2005 [Data set]. Northwest Knowledge Network. Accessed 2023-12-18 from http://thredds.northwestknowledge.net:8080/thredds/ncss/agg_macav2metdata_pr_CCSM4_r6i1p1_historical_1950_2005_CONUS_monthly.nc?var=precipitation&disableProjSubset=on&horizStride=1&time_start=2005-01-15T00%3A00%3A00Z&time_end=2005-12-15T00%3A00%3A00Z&timeStride=1&addLatLon=true&accept=netcdf
Precipitation (Historical)ΒΆ
Climate Variable: Specific HumidityΒΆ
Monthly Average of Daily Mean Near-Surface Specific Humidity (time: mean(interval: 24 hours); mean over days)
Data CitationΒΆ
Northwest Knowledge Network. (2023). MACAv2 Metdata Specific Humidity Data - CCSM4 Historical 1950-2005 [Data set]. Northwest Knowledge Network. Accessed 2023-12-18 from http://thredds.northwestknowledge.net:8080/thredds/ncss/agg_macav2metdata_huss_CCSM4_r6i1p1_historical_1950_2005_CONUS_monthly.nc?var=specific_humidity&disableLLSubset=on&disableProjSubset=on&horizStride=1&time_start=2005-01-15T00%3A00%3A00Z&time_end=2005-12-15T00%3A00%3A00Z&timeStride=1&accept=netcdf
Specific Humidity (Historical)ΒΆ
RCP 8.5 (Severe Climate Change)ΒΆ
Precipitation Maps (RCP 8.5 Severe Climate Change)ΒΆ
Specific Humidity (RCP 8.5 Severe Climate Change)ΒΆ
Fuzzy Logic ModelΒΆ
Based on the quick background search, the following are defined as the preferred conditions for Sorghastrum Nutans:
- Elevation (Low or Moderate): A trapezoidal membership function that covers elevations from 0 to 2000 meters
- Slightly Acidic/Neutral Soil: Gaussian membership function centered at a pH of 6.5 with a spread of 1.
- Moderate or High Precipitatoin: Gaussian membership function centered at 35 mm with a spread of 10 mm.
- Moderate Humidity: Gaussian membership function centered at 0.00500 kg/kg with a spread of 0.0005.
Additionally, well-drained soil is inferred indirectly from having moderate to high precipitation but while the specific humidity isn't high.
These parameters haven't gone through any rigirous selection process. These data sources are also not comprehensive enough to build a solid model.
The following is purely demonstrating the ability manipulate and harmonize DataArray objects.
Situability Maps (Historical)ΒΆ
Based on the fuzzy memberships functions defined, Oglala National Grassland shows having the most situatble areas of the three study sites.
Situability Maps (RCP 8.5)ΒΆ
Well-drained soil is the only change in the considered factors between this RCP 8.5 in comparison to the above. Fort Pierre National Grassland becomes more unsuitable to Sorghastrum Nutans due to the increase in humidity.
Again, these parameters haven't gone through any rigirous selection process. These data sources are also not comprehensive enough to build a solid model. Well-drained soil property is not derived accurately via precipitation and humidity.
The following is purely demonstrating the ability manipulate and harmonize DataArray objects.
Next StepsΒΆ
This notebook demonstrates my ability to handle multiple data layers related to soil, topography, and climate. While it's not fully refactored yet, it illustrates the development of modular, reproducible workflows. To enhance the model, I plan to deepen my understanding of soil and topographic data, as well as climate scenarios. This research will be crucial for building more robust climate projection models, thereby improving the accuracy of habitat suitability assessments.