EcoStats · Solar seasonality · Response timing
FIT_SOLAR_ELLIPSE
Fit, interpret and animate the annual loop between solar input and an ecological response.
Syntax
FIT_SOLAR_ELLIPSE(response,location[,bootstrap])
FIT_SOLAR_ELLIPSE(response,solarSeries[,bootstrap])
FIT_SOLAR_ELLIPSE(response)
Location is a GEO_LOCATION object. Solar radiation is calculated on the response dates. The one-argument form attempts to extract geolocation from the response. Bootstrap defaults to 199; use 0 to disable intervals, or an integer up to 499.
Discover a buoy, then fit its solar loop
stations=NDBC_SEARCH("Cape Elizabeth")
location=EXTRACT(stations,"geolocation:0")
stationId=EXTRACT(stations,"station_id:0")
water=NDBC(stationId,"WTMP",2000,2025)
loop=FIT_SOLAR_ELLIPSE(water,location)
EXTRACT(loop,"slideshow")
Use an existing solar series
solar=SOLAR(water,location)
radiation=EXTRACT(solar,"RADIATION")
loop=FIT_SOLAR_ELLIPSE(water,radiation,0)
EXTRACT(loop,"scatter")
EXTRACT(loop,"animation")
The explicit-series form intersects exact timestamps. It does not interpolate or resample, and uses UTC calendar dates. Missing pairs remain gaps in time. Use INTERPOLATE explicitly if date interpolation is intended.
Study what the annual loop leaves unexplained
residuals=EXTRACT(loop,"residuals")
noise=SPECTRAL_ARIMA(residuals)
slide(loop,noise)
These are residuals from the response's calendar harmonic, not residuals from a causal solar-response equation.
Extracts
model/summary, scatter/scatterfit (original units with fitted loop), ellipse/chart (standardized geometry), geometry/foci, animation, svg, yearly, intervals, diagnostics/coverage, education/notes, actual/data, solar, fitted, solar_fitted, residuals, actualvsfitted, delay_days, amplitude_ratio, response_amplitude, solar_amplitude, slideshow. Location-only extracts: daylight, daylight_change (signed minutes/day), declination, max_elevation.
svg returns standalone animated SVG text; animation includes a download link. The animation follows a fitted reference-year cycle and does not reconstruct observed weather. Rendering requires SVG/SMIL support in the HTML viewer.
Coverage and inference
Requires 60 finite pairs, at least 1.5 years of calendar span and ten represented months. Inputs must be strictly increasing with at most one timestamp per calendar day. At most 100,000 observations per input and ten million paired-observation bootstrap replicates are allowed. The calculation is sequential and reproducible.
Year-cluster bootstrap intervals require five years with ten represented months and at least 270 days of span. Whole years, including partial years, are resampled. Exchangeable years are assumed; trends or cross-year dependence can invalidate uncertainty estimates. Geometry/focal uncertainty is not estimated. No forecast accuracy or causal effect is claimed.
Solar gain, seasonal lag and the ellipse
Two annual sine/cosine combinations plotted against each other form an ellipse, or a line in the degenerate case. The loop represents a seasonal relationship: the response can differ between spring and autumn even when solar input is the same. Dates establish traversal direction and which annual harmonic peaks first.
Connection to seasonal climate research
Stine and Huybers (2012) analyse the annual temperature cycle using gain, the temperature amplitude relative to insolation amplitude, and lag, their annual phase difference expressed in days. These correspond conceptually to this operator's seasonal amplitude ratio and response delay. The ellipse provides a geometric view of those paired annual harmonics.
Amplitude ratio: response amplitude divided by solar amplitude, reported in response units per solar-input unit. Response delay: the wrapped annual phase difference in days; a positive value means the response harmonic follows the solar harmonic. Neither quantity is an OLS scatter-plot slope or, by itself, a causal sensitivity.
This operator is an application of related harmonic ideas, not a replication of their study. It does not implement their atmospheric circulation models, gridded-data analysis, or time-varying orbital and calendar corrections. Their gain and ours must be converted to compatible radiation units before numerical comparison.
What the fit describes
The location form reuses SOLAR formulas for extraterrestrial radiation, daylight, declination and maximum solar elevation. Calculated radiation is not measured surface radiation. The blue curve pairs the fitted annual solar and response harmonics; the orange curve pairs calculated solar radiation with the fitted response. Their difference reflects the non-sinusoidal solar input.
The fitted cycle is a first-harmonic approximation with a period of 365.2425 elapsed days. Higher harmonics can represent seasonal asymmetry; their sum generally gives a closed curve rather than one exact ellipse. Residuals retain weather, other variability, measurement effects and any seasonal structure omitted by this fit.
Earth's axial tilt drives seasonal solar geometry. Heat storage, currents, mixing, depth and weather can modify temperature amplitude and timing. The fit does not separate these mechanisms. Daylight decreases fastest near the autumn equinox; that decrease slows toward the winter solstice.
Many dates accumulate near solar maxima and minima because solar input changes slowly there. Dense or vertically spread points near the solstices are not automatically outliers; inspect dated residuals and their seasonal spread.
Axes, rotation and foci depend on coordinate scaling. Geometry here uses harmonic means and paired-sample standard deviations, with equal pixel scales on both standardized axes. Foci are geometric summaries, not identified ecological or astronomical centres.
Reference
Stine, A. R., and P. Huybers, 2012: Changes in the Seasonal Cycle of Temperature and Atmospheric Circulation. Journal of Climate, 25, 7362–7380. Author-hosted PDF.
Further reading: Ellipse and phase visualization · Dynamic harmonic regression.
Available extracts
Save the command result in a variable, then use EXTRACT(result, "key"). Availability can depend on the input form and fitted model.
modelsummaryellipsechartscatterscatterfitgeometryfocianimationsvgyearlyintervalsdiagnosticscoverageeducationnotesactualdatasolarfittedsolar_fitteddaylightdaylight_changedeclinationmax_elevationresidualsactualvsfitteddelay_daysamplitude_ratioresponse_amplitudesolar_amplitudeslideshow
In indexed patterns such as beta:n, replace n with the required index.