Skip to content

Commit 4d3bc66

Browse files
committed
Add RxCADRE module with docs and tests
1 parent 8aec4c8 commit 4d3bc66

8 files changed

Lines changed: 680 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
## Unreleased
22

3+
### Features
4+
- Add **RxCADRE** module: Prescribed Fire Combustion and Atmospheric Dynamics Research Experiment — fuel loading, ground cover, fire behavior, weather, radiometer, and smoke emission datasets from prescribed fires at Eglin AFB and Joseph Jones Ecological Research Center (2008-2012)
5+
36
## v0.1.0
47

58
### Breaking

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ A Julia package for accessing wildfire and fire-related geospatial data from U.S
2222
| **HMS** | NOAA | Hazard Mapping System (fire detections & smoke plumes) |
2323
| **GWIS** | Copernicus | Global Wildfire Information System (fire danger & burnt areas) |
2424
| **EGP** | NIFC | Enterprise Geospatial Portal (operational boundaries) |
25+
| **RxCADRE** | USFS | Prescribed Fire Combustion and Atmospheric Dynamics Research Experiment |
2526

2627
## Installation
2728

docs/_quarto.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ book:
3737
- modules/hms.qmd
3838
- modules/gwis.qmd
3939
- modules/egp.qmd
40+
- modules/rxcadre.qmd
4041
- part: "API"
4142
chapters:
4243
- api.qmd

docs/index.qmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ The package includes modules for accessing data from:
2424
| [HMS](modules/hms.qmd) | NOAA Hazard Mapping System | Fire detections & smoke plumes |
2525
| [GWIS](modules/gwis.qmd) | Global Wildfire Information System | Global fire danger & burnt areas |
2626
| [EGP](modules/egp.qmd) | Enterprise Geospatial Portal | Operational & jurisdictional boundaries |
27+
| [RxCADRE](modules/rxcadre.qmd) | RxCADRE (USFS) | Prescribed fire research datasets |
2728

2829
## Features
2930

docs/modules/rxcadre.qmd

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
---
2+
title: "RxCADRE"
3+
subtitle: "Prescribed Fire Combustion and Atmospheric Dynamics Research Experiment"
4+
engine: julia
5+
---
6+
7+
## Overview
8+
9+
The RxCADRE module provides access to datasets from the **Prescribed Fire Combustion and Atmospheric Dynamics Research Experiment** (RxCADRE). This multi-disciplinary project involved 90 scientists collecting fire behavior, fuels, meteorology, energy, smoke emissions, and fire effects data from prescribed fires at **Eglin Air Force Base** (Florida) and the **Joseph W. Jones Ecological Research Center** (Georgia) during 2008, 2011, and 2012.
10+
11+
**Data Source:** [USFS Research Data Archive](https://www.fs.usda.gov/rds/archive/)
12+
13+
**Reference:** Ottmar, R.D. et al. (2016). "Measurements, datasets and preliminary results from the RxCADRE project — 2008, 2011 and 2012." *International Journal of Wildland Fire*, 25(1), 1-14.
14+
15+
No API key is required.
16+
17+
## Available Datasets
18+
19+
| Dataset | Category | Description | Size | Years |
20+
|---------|----------|-------------|------|-------|
21+
| `:fuel_loading` | fuels | Ground fuel loading, consumption, and fuel moisture | 61 KB | 2008-2012 |
22+
| `:ground_cover` | fuels | Pre/post-burn percent cover (green, NPV, char, ash, soil) | 0.6 MB | 2008-2012 |
23+
| `:fire_behavior` | fire_behavior | In-situ flame temperature, mass flow, intensity, rate of spread | 3.6 GB | 2012 |
24+
| `:weather` | meteorology | Wind, temperature, RH, pressure at multiple heights (2-sec) | 54 MB | 2012 |
25+
| `:wind_lidar` | meteorology | Doppler wind LiDAR and microwave profiler data | 238 MB | 2012 |
26+
| `:radiometer_locations` | energy | Radiometer deployment locations | 0.65 MB | 2008-2012 |
27+
| `:radiometer_data` | energy | Fire radiative power (FRP) and energy (FRE) measurements | 107 MB | 2012 |
28+
| `:smoke_emissions` | emissions | Airborne CO2, CO, CH4 concentrations in smoke plumes | 0.82 MB | 2012 |
29+
30+
## Basic Usage
31+
32+
```julia
33+
using WildfireData.RxCADRE
34+
35+
# List all datasets
36+
RxCADRE.datasets()
37+
38+
# Filter by category
39+
RxCADRE.datasets(category=:fuels)
40+
41+
# Get info about a dataset
42+
RxCADRE.info(:fuel_loading)
43+
44+
# Get the USFS catalog URL
45+
RxCADRE.catalog_url(:fuel_loading)
46+
```
47+
48+
## Downloading Data
49+
50+
Data is downloaded as ZIP archives from the USFS Research Data Archive, then CSV files are automatically extracted.
51+
52+
```julia
53+
# Download a dataset (extracts CSVs to local storage)
54+
path = RxCADRE.download(:fuel_loading)
55+
56+
# List the extracted files
57+
RxCADRE.list_files(:fuel_loading)
58+
59+
# Force re-download
60+
path = RxCADRE.download(:fuel_loading, force=true)
61+
```
62+
63+
## Loading Data
64+
65+
Extracted CSV files are loaded as `DataFrame`s.
66+
67+
```julia
68+
using DataFrames
69+
70+
# Single-file datasets load directly
71+
df = RxCADRE.load(:ground_cover)
72+
73+
# Multi-file datasets: specify which file
74+
RxCADRE.list_files(:fuel_loading)
75+
df = RxCADRE.load(:fuel_loading, file="CADRE_2008_2011_2012_Fuel_moistures.csv")
76+
77+
# Load all files at once as a Dict
78+
all_data = RxCADRE.load_all(:smoke_emissions)
79+
```
80+
81+
## Working with Fuel Moisture Data
82+
83+
```julia
84+
RxCADRE.download(:fuel_loading, verbose=false)
85+
df = RxCADRE.load(:fuel_loading, file="CADRE_2008_2011_2012_Fuel_moistures.csv")
86+
87+
# Filter by year
88+
df_2012 = filter(r -> r.Year == 2012, df)
89+
```
90+
91+
## Working with Ground Cover Data
92+
93+
```julia
94+
RxCADRE.download(:ground_cover, verbose=false)
95+
df = RxCADRE.load(:ground_cover)
96+
97+
# Examine pre/post-burn changes
98+
select(df, :Unit, :PlotNum, :Pre_Green_perc, :Post_Green_perc)
99+
```
100+
101+
## Working with Smoke Emissions
102+
103+
```julia
104+
RxCADRE.download(:smoke_emissions, verbose=false)
105+
106+
# Load all emission and dispersion files
107+
all_data = RxCADRE.load_all(:smoke_emissions)
108+
109+
# Work with a specific burn
110+
emissions = RxCADRE.load(:smoke_emissions, file="Emissions_L2F_20121111.csv")
111+
dispersion = RxCADRE.load(:smoke_emissions, file="SmokeDispersion_L2F_20121111.csv")
112+
```
113+
114+
## API Reference
115+
116+
### Functions
117+
118+
- `datasets(; category)` - List available RxCADRE datasets, optionally filtered by category
119+
- `info(dataset)` - Print dataset metadata (RDS ID, description, size, DOI)
120+
- `catalog_url(dataset)` - Get the USFS Research Data Archive catalog URL
121+
- `download(dataset; force, verbose)` - Download and extract dataset ZIP files
122+
- `list_files(dataset)` - List extracted data files
123+
- `load(dataset; file, skipto)` - Load a CSV file as a DataFrame
124+
- `load_all(dataset; skipto)` - Load all CSV files as a Dict of DataFrames
125+
- `dir()` - Get local data directory path
126+
127+
### Categories
128+
129+
- `:fuels` - Fuel loading, consumption, moisture, ground cover
130+
- `:fire_behavior` - In-situ fire behavior measurements
131+
- `:meteorology` - Weather and wind profiler data
132+
- `:energy` - Radiometer locations and fire radiative power/energy
133+
- `:emissions` - Airborne smoke emission and dispersion

0 commit comments

Comments
 (0)