Data lab · Open evidence first

Choose data that can carry the question.

Start with one authoritative environmental record, add only the policy and spatial context it needs, and preserve a reproducible route from source to finding.

Tip

Recommended default: use open, archival agency data for the research paper and machine learning. Treat Google Maps Platform as an optional visualization or small-API lab—not as the analytical data backbone.

Build one coherent data stack

  1. Anchor data: repeated measurements of the environmental outcome or policy process.
  2. Context layer: weather, land cover, demographics, facilities, or boundaries that the design actually needs.
  3. Policy record: laws, program dates, enforcement actions, plans, or institutional documents needed to interpret the numbers.

Before choosing, inspect coverage, unit of observation, update history, missingness, geographic identifiers, license/terms, and whether the source can be archived or queried reproducibly.

Potential environmental data sources

Source Questions it can support Grain and R route
EPA AQS Data API / AirData files PM2.5 and ozone trends, wildfire smoke, pollution-weather relationships, exposure inequality Monitor × sample period, with hourly/daily/annual products; JSON API or bulk CSV
NOAA Climate Data Online API Heat and precipitation extremes, seasonality, long-run climate patterns Station × day; token API or bulk Global Historical Climatology Network files
USGS Water Data APIs Flood and drought, streamflow, water temperature, hydrologic response to rain Gauge × instantaneous reading or daily statistic; OGC APIs and the USGS dataRetrieval R package
Water Quality Portal, NYS DEC water data, and Livingston County reports Nutrients, phosphorus, harmful algal blooms, tributary loading, and watershed interventions—especially around Conesus Lake Site × sampling activity × analyte/date/depth; REST CSV/GeoJSON, dataRetrieval, and EPA TADA tools
USGS Annual NLCD Urbanization, impervious cover, forest loss, and land-cover effects on water 30 m raster pixel × year; GeoTIFF/WMS/cloud access; optional terra workflow if selected
USDA Cropland Data Layer Crop rotation, agricultural land conversion, and runoff/nutrient-risk proxies Annual national raster; CroplandCROS/GeoTIFF; optional terra workflow if selected
EPA ECHO downloads Facility siting, inspections, violations, enforcement, penalties, and community disparities Facility point plus dated compliance/action records; REST/map services and weekly bulk files
EPA CAMPD API Power-plant emissions, cap-and-trade, seasonal pollution, and plant responses to policy Plant/unit × hour, day, month, year, or ozone season; REST API and bulk files
NOAA Storm Events Hazard frequency, damages, event classification, and county vulnerability Event × county/forecast zone; annual bulk CSV, with all event types consistently collected from 1996 onward
NYSERDA distributed solar + ACS 5-year API Renewable-adoption diffusion and equity across New York communities Project × interconnection/place plus tract or block-group context; Socrata and Census APIs with TIGER boundaries
USFWS National Wetlands Inventory Wetland protection, habitat fragmentation, and proximity to development or pollution Wetland/deepwater polygons; GeoPackage/shapefile, WMS/REST, and sf

Strong project combinations

Research direction Anchor Context Natural visualization / model
Conesus Lake water quality Water Quality Portal + DEC/local monitoring NLCD/CDL + NOAA precipitation + watershed boundary Seasonal nutrient plots, land-use map, blocked prediction of high-risk readings
Air-quality inequality EPA AQS NOAA weather + ACS/TIGER Monitor trends and exposure map; baseline versus regularized/tree model
Power-sector environmental policy EPA CAMPD Plant characteristics + weather + policy dates Unit-level emissions trajectories; time-aware prediction or classification
Solar-adoption equity in New York NYSERDA solar ACS/TIGER + utility/service geography Adoption-rate choropleth; tract/ZIP typology or adoption model
Climate hazards and vulnerability NOAA Storm Events ACS/TIGER + NLCD Event/damage map; county risk classification with temporal validation
Wetlands and development pressure National Wetlands Inventory NLCD + ECHO facilities + local zoning/policy Proximity/fragmentation maps; spatially blocked comparison

The Conesus Lake stack is the strongest local starting point: it joins observable environmental outcomes, land-use change, weather, and a concrete watershed-policy history within reach of field knowledge and local institutions.

Google Maps Platform: a bounded extension

Google Maps Platform is not one downloadable “Google Map dataset.” It can play three narrower roles:

  • Map presentation: render a basemap and display the class’s own GeoJSON, CSV, or KML with the Maps JavaScript API and data-driven styling.
  • Spatial services: geocoding, routes, places, or elevation for a small, clearly motivated task.
  • Selected environmental services: current/forecast Air Quality, Weather, Pollen, and specialized Solar endpoints.

Current no-cost monthly usage

As of August 23, 2026, Google’s pay-as-you-go model applies a no-cost allowance separately to each SKU. Usage beyond a cap can generate charges.

Service Billable events at no cost each month Appropriate course role
Maps Embed API Unlimited Simple location map; not an analytical custom map
Maps JavaScript API — Dynamic Maps 10,000 map loads Interactive map of the class’s own research layer
Static Maps 10,000 requests Static map image
2D Map Tiles 100,000 tile requests Custom renderer; one map view may request many tiles
Geocoding 10,000 requests Small address-to-coordinate lab
Maps Datasets API No charge Store the class’s own GeoJSON/CSV/KML for styling
Air Quality API 10,000 requests Short demonstration; historical access is limited to 30 days
Weather API 10,000 requests Current/forecast demonstration; historical access is limited
Pollen API 5,000 requests Short forecast demonstration

Check the current Google Maps Platform price list before the lab. The former recurring $200 monthly credit was replaced in March 2025 by per-SKU no-cost caps.

Warning

Standard use requires a billing account and API key. A no-cost cap is not a guarantee of a zero bill. Google’s current terms also prohibit using Google Maps Content to train, test, validate, or fine-tune machine-learning models. Do not use proprietary Google Maps content for the course ML analysis. Use open agency data instead.

Course guardrails

  • Use one instructor-controlled Cloud project for the lab and enable only the required APIs.
  • Use separate browser and server keys. Restrict browser keys by website/referrer, server keys by IP, and every key by API.
  • Never place a server key in a .qmd file, rendered page, or Git repository; read it from an environment variable.
  • Set hard quotas conservatively below the no-cost caps. Budget alerts notify but do not stop charges, and billing reports may lag.
  • Do not scrape or bulk-export Google Maps content, assume it can be cached, or display Places/geocoding content on a non-Google map.

Use Google’s security guidance, cost controls, and platform terms as the authority.

Clean R-to-web-map workflow

  1. Retrieve open agency data in R with httr2, readr, or a maintained agency package.
  2. Transform with dplyr, create vector spatial objects with sf, and fit models with direct, model-specific R packages. Use terra only if the project actually includes raster data.
  3. Explore and validate with ggplot2, tmap, or leaflet; map predictions and residuals when geography matters.
  4. Export the final non-Google research layer in WGS84 GeoJSON with sf::st_write().
  5. For the optional lab, load that GeoJSON into the Maps JavaScript Data layer and style it by attributes.

This separation preserves a reproducible open-data analysis while still giving the student experience publishing a polished interactive Google map.

Back to top