{"id":"releases/2026-11-13/schemas/nearby-1.json","kind":"schema","format":"schema/1.0","provenance":{"release":"2026-11-13","sources":["inaturalist-observations-v2","gbif-occurrence-v2","species-names","inaturalist-photos","usgs-gap-ranges-conus-2001v1","noaa-nclimgrid-daily","us-riis-l48-v2","oh-oda-invasive-plants","oh-odnr-aquatic-invasive","inaturalist-checklist","government-species-lists","census-tiger-2026","census-cartographic-boundaries-2025","resolve-ecoregions-2017","usgs-wbd","census-urban-areas-2020","natural-earth-countries","usgs-annual-nlcd-c1v2-2025","usgs-3dep-1as","usgs-padus-4-1","odnr-lands","census-zcta-county-2020","census-places-2020"],"licences":["CC-BY-4.0","CC-BY-NC-4.0","CC0-1.0"],"gbif_download_dois":["10.15468/dl.8m7c3d","10.15468/dl.y2jkt8"],"method":"seasonal-5","taxonomy":"col-xr-2026-06-19/match-2026-10-20","boundaries":"tiger-2026; census-cb-2025-500k; census-zcta-county-2020; census-places-2020; resolve-ecoregions-2017; usgs-annual-nlcd-c1v2-2025; usgs-3dep-1as; PAD-US 4.1 073747bf4d9b, ODNR Lands 8f5985bbd476, parks list 1.2; WBD HU8 04 1a78c5142bde, 05 d59adb45cc28; census-uac20 dbd0e5786258","ranges":["gap/conus-2001v1"],"protection":{"usfws":"2026-11-03T15:25:11.428Z","ohio":"2026-10"},"code":"414181dce188c3b7397c29608556900ed4e75a41","run":"43333827288"},"data":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"OpenPhenology nearby/1","description":"A county's Nearby label for each species and week.","type":"object","required":["id","kind","format","provenance","data"],"properties":{"id":{"description":"The file's path from the API root.","type":"string","pattern":"^releases/\\d{4}-\\d{2}-\\d{2}/nearby/[a-z]{2}-[a-z0-9]{1,3}/\\d{5}(/\\d+)?\\.json$"},"kind":{"description":"The format's name, such as `county-weekly`.","const":"nearby"},"format":{"description":"Format name and version, for example `county-weekly/1.0`.","type":"string","pattern":"^nearby/1\\.\\d+$"},"provenance":{"description":"Where the content came from.","type":"object","required":["release","sources","licences","gbif_download_dois","method","taxonomy","boundaries","ranges","protection","code","run"],"properties":{"release":{"description":"The release the file belongs to, such as `2026-10-19`.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"sources":{"description":"Source IDs, as listed in `sources.json`.","type":"array","items":{"type":"string"}},"licences":{"description":"The licences of those sources.","type":"array","items":{"type":"string"}},"gbif_download_dois":{"description":"The GBIF downloads the records came from, as DOIs.","type":"array","items":{"type":"string"}},"method":{"description":"The method version, such as `seasonal-3`.","anyOf":[{"type":"string"},{"type":"null"}]},"taxonomy":{"description":"The taxonomy version species keys come from.","anyOf":[{"type":"string"},{"type":"null"}]},"boundaries":{"description":"The boundary version areas come from.","anyOf":[{"type":"string"},{"type":"null"}]},"ranges":{"description":"Each mapped range edition used.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"protection":{"description":"The version of each sensitive-species list applied, by list.","anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"null"}]},"code":{"description":"The commit of the code that produced the file.","anyOf":[{"type":"string"},{"type":"null"}]},"run":{"description":"The run that produced the file.","anyOf":[{"type":"string"},{"type":"null"}]}}},"data":{"description":"The content, as the format sets out.","type":"object","required":["area","method","evidence_through","effort","species"],"properties":{"area":{"description":"The county's 5-digit Census code.","type":"string","pattern":"^\\d{5}$"},"method":{"description":"The method version.","type":"string","minLength":1},"evidence_through":{"description":"The latest record date counted, `YYYY-MM-DD`.","anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"effort":{"description":"Records of all species counted in the county, weeks 1 to 53.","type":"array","items":{"type":"integer","minimum":0},"minItems":53,"maxItems":53},"species":{"description":"Each species with a result or a mapped range covering the county.","type":"array","items":{"type":"object","required":["species_key","group","labels","range","records","weekly","season","season_withheld","windows","conditions","stages"],"properties":{"species_key":{"description":"The species key.","type":"string","pattern":"^[A-Za-z0-9._-]+$"},"group":{"description":"The browse group.","anyOf":[{"type":"string","pattern":"^[a-z]+(-[a-z]+)*$"},{"type":"null"}]},"labels":{"description":"53 letters, one per week.","type":"string","pattern":"^[csrmn]{53}$"},"range":{"description":"The mapped range covering the county, or `null`.","anyOf":[{"type":"object","required":["source","seasons"],"properties":{"source":{"description":"The range's source ID.","anyOf":[{"type":"string"},{"type":"null"}]},"seasons":{"description":"The range's seasons there.","type":"array","items":{"enum":["year-round","summer","winter","migratory","passage"]}}}},{"type":"null"}]},"records":{"description":"The county result's records counted, or `null` without a county\nresult.","anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"weekly":{"description":"The county result's weekly records, weeks 1 to 53, or `null` without\na county result.","anyOf":[{"type":"array","items":{"type":"integer","minimum":0},"minItems":53,"maxItems":53},{"type":"null"}]},"season":{"description":"The county result's season weeks, or empty.","type":"array","items":{"type":"integer","minimum":1,"maximum":53},"maxItems":3},"season_withheld":{"description":"Why the county result's season is withheld, or `null`.","anyOf":[{"enum":["year-round","two-seasons","one-year","precision"]},{"type":"null"}]},"windows":{"description":"The county result's two windows, exactly as the species file gives\nthem, or `null` without a county result or when its season is not\nwithheld as `two-seasons`.","anyOf":[{"type":"array","items":{"type":"object","required":["records","season","season_withheld"],"properties":{"records":{"description":"The window's records.","type":"integer","minimum":0},"season":{"description":"Early, middle and late weeks, or empty.","type":"array","items":{"type":"integer","minimum":1,"maximum":53},"maxItems":3},"season_withheld":{"description":"Why `season` is empty, or `null`.","anyOf":[{"enum":["too-few-records","year-round","two-seasons","one-year","precision"]},{"type":"null"}]}},"allOf":[{"anyOf":[{"type":"object","properties":{"season":{"type":"array","minItems":3},"season_withheld":{"type":"null"}}},{"type":"object","properties":{"season":{"type":"array","maxItems":0},"season_withheld":{"enum":["too-few-records","year-round","two-seasons","one-year","precision"]}}}]}]},"minItems":2,"maxItems":2},{"type":"null"}]},"conditions":{"description":"The county result's conditions on its record days, exactly as the\nspecies file gives them, or `null` without a county result.","anyOf":[{"type":"object","required":["sunrise","sunset","high","low","midpoint"],"properties":{"sunrise":{"description":"Median sunrise, local clock time `HH:MM`, calculated with NOAA's solar calculation.","anyOf":[{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},{"type":"null"}]},"sunset":{"description":"Median sunset, local clock time `HH:MM`, calculated with NOAA's solar calculation.","anyOf":[{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},{"type":"null"}]},"high":{"description":"Median daily high in °C, from NOAA nClimGrid-Daily; lower 48 states only.","anyOf":[{"type":"number"},{"type":"null"}]},"low":{"description":"Median daily low in °C, from NOAA nClimGrid-Daily; lower 48 states only.","anyOf":[{"type":"number"},{"type":"null"}]},"midpoint":{"description":"Median midpoint of the day's high and low in °C (NOAA's `tavg`); not an\naverage of temperatures through the day. Lower 48 states only.","anyOf":[{"type":"number"},{"type":"null"}]}}},{"type":"null"}]},"stages":{"description":"The county result's stage seasons, `{}` without a county result or\nstages.","type":"object","properties":{"flowering":{"description":"A plant's season reported in flower, or empty when withheld.","type":"array","items":{"type":"integer","minimum":1,"maximum":53},"maxItems":3,"anyOf":[{"type":"array","maxItems":0},{"type":"array","minItems":3}]},"fruiting":{"description":"A plant's season reported in fruit, or empty when withheld.","type":"array","items":{"type":"integer","minimum":1,"maximum":53},"maxItems":3,"anyOf":[{"type":"array","maxItems":0},{"type":"array","minItems":3}]},"adult":{"description":"An insect's season reported as an adult, or empty when withheld.","type":"array","items":{"type":"integer","minimum":1,"maximum":53},"maxItems":3,"anyOf":[{"type":"array","maxItems":0},{"type":"array","minItems":3}]},"larva":{"description":"An insect's season reported as a larva, or empty when withheld.","type":"array","items":{"type":"integer","minimum":1,"maximum":53},"maxItems":3,"anyOf":[{"type":"array","maxItems":0},{"type":"array","minItems":3}]}},"additionalProperties":false}}}}}}}}}