Repository navigation
Conversation
`seas5_forecast(start; member)` picks one forecast and ensemble member as `weather_source`. Loaded as a daily min/max source via RasterDataSources' CDS-queued `SEAS5`: CDS only serves radiation and rainfall as 24-hourly accumulations, so 6-hourly dewpoint and wind are averaged to days and accumulations de-accumulated. Adds a `_check_weather_dates` hook so runs outside the 215-day forecast window fail clearly instead of solving on NaN forcing. Pins RasterDataSources to the fork's `franken-seas5` (franken-branch + SEAS5) until EcoJulia/RasterDataSources.jl#113 is merged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… wind Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds ECMWF's SEAS5 seasonal forecasts as a
weather_source, so a microclimate can be run forward from a forecast:This is based on
Docs(#39), notmain, so the diff shows only SEAS5. GitHub will retarget it tomainifDocsis merged and its branch is deleted. It depends on two RasterDataSources PRs, soProject.tomlpinsRasterDataSourcesto the fork branchfranken-seas5(=franken-branch+ SEAS5) until those land:Design
seas5_forecast(start; member)returnsSEAS5Forecast{Init,Member}, withstartsnapped to the 1st of the month. Member 0 is the control forecast. For the spread, run members 0–50 separately.GRIDMET, not sub-daily. CDS only serves SEAS5 radiation and rainfall as 24-hourly accumulations, and a source has one native timestep. Daily radiation is also what the min/max path's clear-sky spreading is built for. The six daily fields are:Days are UTC days.
SingleForecast. It makes one CDS request per SEAS5 variable (7 in total, at most 4 at a time) throughgetraster(SEAS5, …), over the whole-degree box around the area. It returns daily layers on the full-yearscalendar the other loaders use, with NaN outside the forecast's 215 days._check_weather_dates(source, dates). It does nothing by default and is called where bothinits normalise dates. SEAS5 uses it to reject runs outside the forecast window up front, instead of solving on NaN forcing.points_load_bufferis 0.5° (SEAS5's grid points sit at cell centres) andweather_area_bufferis 2° (two 1° cells each side for the cubic-spline regridding, as NCEP gets).init_source = ERA5ECMWFLand; passinginitalso works.Also adds
examples/microclimate/seas5_point.jland SEAS5 entries in the forcing-data and data-source docs.Testing
test/seas5.jl(31 tests, no network). It covers the type and traits, the request extent, the date-window check, the daily reductions, and reading files in the exact layout CDS returned for a live SEAS5 request. It also runs the loader end to end, from files planted ingetraster's cache through member selection, daily reduction and calendar placement.solvelocally with synthetic SEAS5 files (Melbourne, 30 days, real SRTM). It produced 720 hourly steps. Air temperature at 1.2 m stayed within the planted Tmin/Tmax. Humidity of 43–86% matches the planted dewpoint. Solar radiation peaked at 757 W/m². An out-of-window run was rejected.getraster/getpointpath was checked against a live SEAS5 download.solveneededoutput_layerswithoutground_surface_water. OnDocs, the default output layers ask Microclimate for that field, and the installedcanopyMicroclimate doesn't have it. That's unrelated to this PR.🤖 Generated with Claude Code