Sol og energi

TMY Norge

Typisk meteorologisk år for ethvert punkt på fastlands-Norge, 8760 timer med GHI, DNI, DHI, temperatur, fukt, vind og trykk. 15 filformater, fire produkter, P50 til P95, statistikk og kilder per celle.

Sist oppdatert 2026-09-15 · Markdown · OpenAPI · Prøv i nettleseren: TMY Norge

  • GET /api/tmy
  • GET /api/tmy/stats
  • GET /api/tmy/sources
  • POST /api/tmy/lead

Hva du får

Et typisk meteorologisk år (TMY) er 12 typiske måneder valgt fra en lang periode og satt sammen til ett år med 8760 timer. TMY Norge er bygd for 38 671 celler i 3 km fra NORA3 (Meteorologisk institutts reanalyse) og SunPoint (1 km solmodell), biaskorrigert mot 45 MET-pyranometerstasjoner. Etter korreksjon er middelfeilen +0,5 W/m² og korrelasjonen 0,94. Filene er laget for PVsyst, EnergyPlus, SAM, PV*SOL og egne beregninger.

Nøkkel er valgfri i lanseringsperioden: inntil 2000 forespørsler per døgn per IP-adresse, alle formater og produkter. En nøkkel gir ikke høyere kvote enn dette før planene aktiveres. Nedlastinger er lisensiert for prosjekter som prosjekteres til og med 30. september 2026 (license_version: "tmy-v1-2026-09-30").

GET /api/tmy: last ned året

curl -o oslo.epw "https://api.solkart.no/api/tmy?lat=59.91&lon=10.75&format=epw"
Parameter Type Standard Beskrivelse
lat, lon tall påkrevd 57 til 71,5° N, 4 til 31,5° Ø. Nærmeste celle innen 6 km brukes.
format se tabell epw Filformat
source ensemble | nora3 | sunpoint ensemble Datakilde
period 30 | 18 30 1991 til 2020, eller 2008 til 2025 (bare nora3)
product ens_tmy30 | nora3_tmy30 | nora3_tmy18 | sunpoint_tmy30 fra source+period Velg produkt direkte
confidence tmy | mean | p50 | p75 | p90 | p95 tmy tmy er de valgte typiske månedene uskalert. mean og pXX skalerer serien så årssummen av GHI treffer langtidsmiddelet eller persentilen. P90 = årssum som overskrides 90 % av årene.
tz utc | local utc local er UTC+1 uten sommertid (gjelder JSON og CSV)

Formater

format Filtype Til Tidskonvensjon
json .json Egen kode UTC, bin-start
csv .csv Regneark, pandas UTC, bin-start
epw .epw EnergyPlus, IDA ICE, DesignBuilder Timeslutt, lokal normaltid (UTC+1)
tmy3 .csv (NREL TMY3) SAM, pvlib Timeslutt, lokal normaltid
pvsyst .csv PVsyst (importer som «Custom») Timeslutt, lokal normaltid (UTC+1)
meteonorm .dat PVsyst, Polysun Timeslutt, lokal normaltid
pvgis .csv Verktøy som leser PVGIS TMY UTC
nsrdb .csv Verktøy som leser NSRDB PSM3 Timeslutt, lokal normaltid
solcast .csv Verktøy som leser Solcast TMY UTC
solaranywhere .csv Verktøy som leser SolarAnywhere Timeslutt, lokal normaltid
dwd, dwdxml .dat, .xml Verktøy som leser DWD TRY Timeslutt, lokal normaltid
custom .csv Fritt kolonneformat med hode Timeslutt, lokal normaltid
wbv .wbv Windows-baserte simuleringsverktøy Timeslutt, lokal normaltid
measurement .csv Måledata-lignende format for validering UTC

Fila leveres som Content-Disposition: attachment; filename="sunpoint_tmy_<lat>_<lon>_<produkt>_<confidence>.<ext>" (inline for JSON), med Cache-Control: public, max-age=86400 og hodene X-Tmy-Cell, X-Tmy-Cell-Distance-Km, X-Tmy-Product.

JSON-strukturen

{
  "meta": {
    "cell_id": "y0578x614", "lat": 59.9105, "lon": 10.7687, "elevation_m": 61.3,
    "product": "ens_tmy30", "product_years": [1991, 2020],
    "selected_years": [2003, 2005, 2017, 2010, 2012, 2010, 2001, 2007, 2018, 1999, 2004, 2008],
    "confidence": "tmy", "scale_factor": 1,
    "annual_ghi_kwh_m2": { "tmy": 992.2, "mean": 966.3, "p50": 965.4, "p75": 940.4, "p90": 925.1, "p95": 908.2 },
    "annual_dni_kwh_m2_tmy": 1089.7,
    "bias_correction_wm2": [-5.6, -11.2, -12.4, -10.2, -9.6, -9.2, -9.6, 0, -5.4, -6.8, 0, 0],
    "n_stations_bias": 3,
    "ensemble_weights": { "nora3": 0.40, "sunpoint": 0.60 },
    "time_convention": "UTC, bin-start: value = mean over [t, t+1h); met vars instantaneous at t",
    "sources": "NORA3 (MET Norway reanalysis, 3 km) + SunPoint ML-Optimized GHI (MET Norway, 1 km); station bias-correction vs MET obs",
    "method": "TMY3-style Finkelstein-Schafer month selection (GHI 0.5, DNI 0.25, Tair 0.15, Tdew 0.05, wind 0.05); DNI/DHI via DIRINT",
    "license": "Data downloaded from this service is licensed for use only in projects designed on or before 30 September 2026.",
    "license_version": "tmy-v1-2026-09-30",
    "generator": "SunPoint V6 TMY API (solkart.no), record v1"
  },
  "hourly": {
    "time": ["2001-01-01T00:00:00Z", "2001-01-01T01:00:00Z", "…8760 verdier"],
    "ghi": [0, 0, "…"], "dni": [], "dhi": [], "temp_air": [], "rel_hum": [], "wind_speed": [], "mslp": []
  },
  "units": { "ghi": "W/m2", "dni": "W/m2", "dhi": "W/m2", "temp_air": "degC", "rel_hum": "%", "wind_speed": "m/s", "mslp": "hPa" }
}
Felt Beskrivelse
meta.selected_years[] Kalenderåret hver av de 12 månedene er hentet fra
meta.annual_ghi_kwh_m2 Årssum GHI for TMY-året, langtidsmiddelet og persentilene
meta.scale_factor Faktoren serien er skalert med for valgt confidence (1 for tmy)
meta.bias_correction_wm2[] Korreksjon per måned fra målestasjoner, W/m²
hourly.time[] År 2001 er plassholder for et typisk år

Innstrålingen er timemiddel over [t, t+1h); temperatur, fukt, vind og trykk er øyeblikksverdier ved t.

GET /api/tmy/stats: årssummer og persentiler

Statistikk for alle fire produktene i cellen, uten å laste ned timedata.

curl "https://api.solkart.no/api/tmy/stats?lat=59.91&lon=10.75"
{
  "cell_id": "y0578x614", "lat": 59.9105, "lon": 10.7687, "elevation_m": 61.3,
  "query": { "lat": 59.91, "lon": 10.75, "cell_distance_km": 1.05 },
  "products": {
    "ens_tmy30": { "years": [1991, 2020], "selected_years": ["…12"],
                   "annual_ghi_kwh_m2": { "tmy": 992.2, "mean": 966.3, "p50": 965.4, "p75": 940.4, "p90": 925.1, "p95": 908.2 },
                   "annual_ghi_std_kwh_m2": 40.2, "annual_dni_kwh_m2_tmy": 1089.7 },
    "nora3_tmy30": { "…": "…" }, "nora3_tmy18": { "…": "…" }, "sunpoint_tmy30": { "…": "…" }
  },
  "monthly_ghi_kwh_m2": { "ens_tmy30": { "p50": ["…12"], "p90": ["…12"] }, "nora3_tmy30": { "…": "…" } },
  "bias_correction": { "applied_wm2_per_month": ["…12"], "n_stations": 3, "mean_abs_wm2": 6.7 },
  "ensemble_weights": { "nora3": 0.40, "sunpoint": 0.60 },
  "n_years": { "nora3": 30, "sunpoint": 30 },
  "exceedance_definition": "Pxx = annual/monthly GHI exceeded in xx % of years of the product period (P90 = 10th percentile)"
}

GET /api/tmy/sources: hvor kommer hver måned fra

curl "https://api.solkart.no/api/tmy/sources?lat=59.91&lon=10.75"

Svarer med products.<produkt>.{source, period, selected_year_per_month[12]}, bias_correction_wm2_per_month[12], n_stations_bias og method. Nyttig i rapporter som skal dokumentere datagrunnlaget.

POST /api/tmy/lead

Skjemaet på solkart.no/tmy registrerer firma, navn og e-post før nedlasting og lisensaksept. Endepunktet er åpent, men beregnet på skjemaet: {company, name, email, lat, lon, license_accepted: true} pluss valgfrie phone, address, product, format. Svar {ok: true, stored: true, id, license_version}. Grense 200 per IP-adresse per døgn.

Eksempler i kode

import pandas as pd, requests

r = requests.get("https://api.solkart.no/api/tmy",
                 params={"lat": 59.91, "lon": 10.75, "format": "json", "confidence": "p90"}, timeout=30)
r.raise_for_status()
d = r.json()
df = pd.DataFrame(d["hourly"]).set_index(pd.to_datetime(d["hourly"]["time"]))
print(d["meta"]["annual_ghi_kwh_m2"]["p90"], df["ghi"].sum() / 1000)
# PVsyst: last ned og importer som Custom-fil
curl -o oslo_p90.csv "https://api.solkart.no/api/tmy?lat=59.91&lon=10.75&format=pvsyst&confidence=p90"

Feil

Status error
400 lat og lon må være tall (grader, WGS84).
400 Punktet er utenfor dekningsområdet (lat 57-71.5, lon 4-31.5, fastlands-Norge).
400 Ukjent format '<f>'. Gyldige: … / confidence må være tmy\|mean\|p50\|p75\|p90\|p95 / Ugyldig source/period/product. …
401 Daglig forespørsels-grense (2000/dag) brukt opp. …
404 Ingen TMY-celle innen ~6 km av punktet (utenfor fastlands-Norge-masken). / Produkt '<p>' finnes ikke for denne cellen.
503 TMY-data ikke tilgjengelig (tile mangler i R2). / Langtidsmiddelet er ikke tilgjengelig for denne cellen. (ved confidence=mean)

Datagrunnlag og metode

  • NORA3: MET Norways reanalyse i 3 km, 1991 til 2025.
  • SunPoint: EnergiSmarts solmodell i 1 km, 1991 til 2020, trent på MET-kvalitetssikrede stasjoner.
  • Ensemble (ens_tmy30): vektet 40/60 per celle, deretter månedlig biaskorreksjon mot nærmeste pyranometerstasjoner.
  • Månedsvalg: Finkelstein-Schafer-statistikk som i NREL TMY3, vekter GHI 0,5, DNI 0,25, lufttemperatur 0,15, duggpunkt 0,05, vind 0,05. DNI og DHI fra DIRINT.

Samme data i nettleseren: solkart.no/tmy.