Flipping through field notebooks…
Process NAIP imagery and calculate NDVI
Apply mosaic function to convert NAIP ImageCollection to single image. Clip to roi geometry. Calculate NDVI using normalizedDifference function with Near-infrared ('N') and Red ('R') bands. Rename the resulting band 'ndvi'. Add NDVI layer to map with visualization parameters: minimum -0.8, maximum 0.8.
Quantities: Single NDVI raster derived from 2015 NAIP imageryDuration: Image processing stepConditions: Using 2015 NAIP imagery for consistency
Equipment: Google Earth Engine, NAIP imagery
Load and process NLCD data
Load National Land Cover Database using ee.ImageCollection('USGS/NLCD'). Select the 2016 NLCD image by unique ID 'USGS/NLCD/NLCD2016'. Select the 'landcover' band and clip to roi geometry. Add landcover layer to map.
Quantities: Single landcover classification raster with 13 bands from 2016 NLCDDuration: Data loading stepConditions: Using 2016 NLCD dataset for land cover classification
Equipment: Google Earth Engine, USGS NLCD dataset
Generate random sampling points
Create sample area geometry feature for point generation. Use ee.FeatureCollection.randomPoints function with parameters: region set to sampleArea polygon, points set to 1000, seed set to 1234. Add generated points layer to map for visualization.
Quantities: 1000 random points within sample area polygon, seed value 1234Duration: Point generation stepConditions: Points generated within accessible areas near exclosures and public land
Equipment: Google Earth Engine, randomPoints function
Extract values to sampling points
Combine NDVI, elevation, and landcover images into single multiband image using addBands function. Use sampleRegions function to extract values to the 1000 random points with parameters: collection set to points, scale set to 30m, geometries set to true to maintain coordinate information.
Quantities: 1000 points with extracted values for 3 environmental variables at 30m resolutionDuration: Value extraction stepConditions: Upscaling 1m NAIP to 30m resolution to match other datasets
Equipment: Google Earth Engine, sampleRegions function
Filter points by land cover
Filter the sampled points to retain only those in deciduous forest areas using ee.Filter.equals function with 'landcover' property equal to 41 (NLCD code for deciduous forest). This reduces the total potential sampling sites by approximately 25%.
Quantities: Approximately 750 points remaining after land cover filteringDuration: Filtering stepConditions: Using NLCD deciduous forest class (value 41) as filter criterion
Equipment: Google Earth Engine, Filter.equals function
Calculate mean values within exclosures
Use reduceRegion function to calculate mean NDVI and elevation values within exclosure areas. For NDVI: apply ee.Reducer.mean over exclosure geometry with scale 1m and CRS 'EPSG:4326'. For elevation: apply reduceRegionFunction (custom function) with exclosure geometry and scale 30m.
Quantities: Mean NDVI and elevation values calculated for exclosure reference areasDuration: Statistical calculation stepConditions: Using exclosures as reference areas for environmental similarity
Equipment: Google Earth Engine, reduceRegion function, custom reduceRegionFunction
Define acceptable value ranges
Create effectiveRange function to calculate ±10% range around mean values. Extract mean values from dictionary objects, multiply by 0.1 to get buffer values, then subtract and add buffer to get minimum and maximum acceptable range values for both NDVI and elevation.
Quantities: ±10% range calculated around mean NDVI and elevation valuesDuration: Range calculation stepConditions: Using 10% threshold as similarity criterion
Equipment: Google Earth Engine, custom effectiveRange function
Apply multiple environmental filters
Chain multiple ee.Filter functions using ee.Filter.and to create combined filter. Apply filters for: NDVI greater than lower range value, NDVI less than upper range value, elevation greater than lower range value, elevation less than upper range value. Apply combined filter to reduce point set from ~750 to ~100 potential sampling locations.
Quantities: Approximately 100 points remaining after environmental filtering, 90% reduction from original 1000 pointsDuration: Final filtering stepConditions: Points must match environmental conditions within ±10% of exclosure means
Equipment: Google Earth Engine, Filter.and function