Sol og energi

Takanalyse

Modulplassering, antall moduler og kWp for et tak fra bygningsomriss (FKB), høydemodell 1 m og flyfoto med SunPoint bildeanalyse. Skråtak og flate tak, øst/vest eller sør, avstander etter NEK 400-7-712, tegning som PNG og GeoJSON. Krever avtale.

Sist oppdatert 2026-09-17 · Markdown · OpenAPI · Prøv i nettleseren: Solsjekk

  • POST /api/roof/jobs
  • GET /api/roof/jobs/{id}
  • GET /api/roof/jobs/{id}/tegning.png
  • POST /api/roof/layout

Hva du får

Gi et punkt på et bygg, så finner tjenesten bygningen i FKB, leser takflater, helning og hindringer fra høydemodellen (DOM 1 m) og flyfoto (SunPoint bildeanalyse), og plasserer moduler etter regler for kantavstand, gangbaner, hindringer, skygge og snøsoner. Svaret er antall moduler, kWp, takflater med retning og helning, tegning og GeoJSON, klart til PV-kalkulatoren (resultat.pv_kalkulator.arrays_param).

Dette er samme motor som Solsjekk og «Avansert» i PV-kalkulatoren bruker. Innsending krever et passord fra avtale (passord i kroppen) eller en partnerkode; kontakt oss for tilgang. Grense 1 per sekund og 20 per time per IP-adresse. Statuspolling er ikke begrenset.

POST /api/roof/jobs

curl -X POST https://api.solkart.no/api/roof/jobs \
  -H "Content-Type: application/json" \
  -d '{"lat": 59.2185, "lon": 10.9298, "montering": "auto", "passord": "…"}'

Svar 202: {jobb_id, status: "queued", posisjon, foran, estimert_sekunder, ventende_i_koen}. Poll GET /api/roof/jobs/{jobb_id} til status er done (typisk 15 til 60 s, med bildeanalyse inntil 90 s). Resultatet lever i 15 minutter. Se asynkrone jobber.

Felt Type Standard Beskrivelse
lat, lon tall påkrevd Et punkt på bygget, 57 til 72 / 4 til 32
passord streng Fra avtale. Alternativt partner med partnerkode.
montering ost_vest | sor | auto ost_vest Flate tak: øst/vest-stativ eller sørvendt. auto velger etter takform. Skråtak legges alltid i takets plan.
retning auto | bygg | himmel auto Radretning: langs byggets akse eller etter himmelretning
ai boolean true false hopper over bildeanalysen (raskere, ingen hindringer fra flyfoto)
tegning boolean true Lag tegning (PNG)
geojson boolean true Ta med moduler og soner som GeoJSON
skraa_bare_sor boolean false På skråtak: bare flater mot sør (±90°)
kvalitetssjekk boolean true Kryssjekk av takform og helning mellom høydemodell og flyfoto
tving_ny boolean false Hopp over cache
modul_wp 300 til 1000 650 Moduleffekt, Wp
modul_lengde_mm, modul_bredde_mm 1000 til 3000, 700 til 1500 2382, 1134 Modulmål
radavstand_sor_m 1,2 til 4 Radavstand for sørvendt stativ
enhetsavstand_ost_vest_m 2,2 til 5 Enhetsavstand for øst/vest
helning_grader 5 til 20 Stativhelning på flatt tak
rad_retning_grader 0 til 179,99 Lås radretningen
regler objekt Finjustering, se under

regler

Felt Område Beskrivelse
edge_setback_m 0 til 5 Kantavstand flatt tak (1 m på alle kanter; NEK 400-7-712C krever 1 m fra én)
pitched_edge_setback_m 0 til 5 Skråtak: praktisk margin mot raft og gavl, målt på takflaten (0,3 m; ikke et NEK-krav)
ridge_setback_m 0 til 5 Skråtak: avstand fra møne/grat der flaten på andre siden også får moduler (0,6 m, NEK 400-7-712C)
pitched_access_edge_m, pitched_access_edge 0 til 5, boolean Skråtak: fri sone langs raften på én flate for brannvesenets tilkomst når alle takflatene brukes (1 m, NEK 400-7-712C); legges på flaten med minst sol
lane_width_m, lane_interval_m 0 til 3, 10 til 200 Gangbaner: bredde og avstand
lanes_along_rows, lanes_across_rows boolean Gangbaner langs og på tvers av radene
shade_loss_max 0 til 1 Maks akseptert skyggetap for en modulposisjon
protrusion_min_m, protrusion_clearance_m 0,2 til 3, 0 til 3 Minste hindring som tas hensyn til, og klaring rundt
obstacle_north_factor, obstacle_ew_factor, obstacle_south_m 0 til 5 Skyggesoner rundt hindringer (ganger høyden mot nord og øst/vest, fast mot sør)
obstacle_clearance_m, obstacle_height_m per type Klaring (0 til 5 m) og standardhøyde (0 til 10 m) per objekttype: ventilasjon, kjoleaggregat, takluke, overlys, roykluke, pipe, heissjakt, takoppbygg, antenne, sluk, kile, brannvegg, solceller, terrasse, gront_tak, annet
min_run_modules 1 til 10 Korteste sammenhengende rad
common_row_direction, align_columns boolean Felles radretning på alle flater; juster kolonner
pitched_orientation portrait | landscape | auto Moduler stående eller liggende på skråtak
pitched_north_max_tilt_deg 0 til 90 Maks helning der nordvendte skråtak fortsatt brukes

Svar når status er done

{
  "jobb_id": "3f9a1c2b7d0e", "status": "done",
  "tegning_url": "/roof/jobs/3f9a1c2b7d0e/tegning.png",
  "resultat": {
    "punkt": { "lat": 59.2185, "lon": 10.9298, "x_utm33": 272163, "y_utm33": 6575571 },
    "bygning": { "kilde_omriss": "FKB", "areal_m2": 1840, "hoyde_m": 8.2, "takform": "flatt", "takform_profiler": "flatt",
                 "takform_korrigert": false, "helning_flyfoto_grader": null, "takmateriale": "papp", "eksisterende_solceller": false,
                 "hovedakse_grader": 35, "omriss": ["…"] },
    "resultat": { "moduler": 266, "kwp": 172.9, "modul": { "wp": 650, "lengde_mm": 2382, "bredde_mm": 1134 },
                  "montering": "ost_vest", "montering_tekst": "Øst/vest-stativ 10°",
                  "brutto_takareal_m2": 1840, "brukbart_areal_m2": 1210, "modulareal_m2": 743, "dekningsgrad_pst": 40.4,
                  "kwp_per_m2_tak": 0.094, "takflater": 1,
                  "pv_kalkulator": { "flater": ["…"], "arrays_param": "86.45:10:-55,86.45:10:125", "mounting": "free" } },
    "takflater": [ { "id": 1, "type": "flatt", "areal_m2": 1840, "moduler": 266, "kwp": 172.9, "retning_grader": 35 } ],
    "utelukkelser": [ { "type": "ventilasjon", "kilde": "SunPoint bildeanalyse", "areal_m2": 6.1 } ],
    "kvalitetssjekk": { "status": "ok", "merknader": [] },
    "grunnlag": { "hoydemodell": "DOM 1 m 2023", "ortofoto": "ortofoto 2024", "omriss": "FKB-Bygning", "ai": true, "advarsler": [], "tid_s": 14.8 },
    "moduler": { "type": "FeatureCollection", "features": ["…"] },
    "meta": { "generator": "solkart takanalyse", "versjon": 1 }
  }
}
Felt Beskrivelse
resultat.resultat.moduler, kwp Antall moduler og installert effekt
resultat.resultat.pv_kalkulator.arrays_param Klar til arrays= i /api/pv/calc: kwp:helning:asimut per flate, asimut 0 = sør
resultat.bygning.takform, takform_profiler, takform_korrigert Takform fra flyfoto, fra høydeprofiler, og om de ble avstemt
resultat.takflater[] Flater med retning, helning, areal, moduler og kWp. fallretning_grader er fallet modulene fikk; fallretning_hoydemodell_grader det høydemodellen målte. rad_justering er takflate (rader langs raften slik høydemodellen ser den) eller raft (lagt langs takflatens egen kant fordi det ga et regelmessig nett; forklart i rad_merknad). nett teller rader og kolonner (moduler_per_rad, moduler_per_kolonne, regelmessig, rektangularitet, hindringer, advarsel).
resultat.utelukkelser[] Hindringer og soner som ble holdt fri, med kilde. På skråtak: kant_skraa (praktisk margin), mone (NEK 0,6 m når begge sider brukes) og tilkomst (NEK 1 m fri raft når alle flatene brukes); alle målt på takflaten og regnet om til planet med cos(helning)
resultat.kvalitetssjekk Kryssjekk mellom kildene og merknader du bør lese. nett_advarsler lister skråflater der modulnettet er uregelmessig uten hindringer (fallretning eller helning trolig feiltolket); nettsjekk er det bildeanalysen fikk å vurdere, og flater_rettet fallretning/helning den rettet med sikkerhet ≥ 0,7 før anlegget ble pakket på nytt.
resultat.grunnlag.advarsler[] Manglende data, gammel høydemodell, usikker takform
moduler, utelukkelser_geojson, frie_soner_geojson GeoJSON i WGS84 for kart

GET /api/roof/jobs/{id}/tegning.png gir tegningen med flyfoto, moduler og soner (image/png, hodene X-Moduler og X-Kwp, Cache-Control: private, max-age=900).

POST /api/roof/layout

Synkron variant med samme kropp og svar (resultat direkte, pluss tegning.png_base64 når tegning er på), inntil 90 s. Gir 503 BACKEND_BUSY når køen er i bruk, og 504 TIMEOUT (Analysen brukte for lang tid (over 90 s). …, med Retry-After) hvis analysen ikke rekker fram; bruk jobbendepunktet for store bygg.

Feil

Status code Betyr
400 INVALID_INPUT Feil i kroppen, med feltnavn i meldingen (regler.edge_setback_m må ligge mellom 0 og 5.)
401 PASSWORD_REQUIRED Automatisk prosjektering krever passord.
404 NOT_FOUND Ukjent eller utløpt jobb
409 NOT_READY Tegning bedt om før jobben er ferdig
410 EXPIRED Tegnegrunnlaget er borte; kjør på nytt
422 NO_BUILDING Fant ingen bygning ved punktet (FKB/OSM). Klikk på taket i kartet. Flytt punktet inn på taket. Også når bygget er større enn 400 m i utstrekning.
429 RATE_LIMITED Over 1/s eller 20/time
503 BACKEND_BUSY Køen er full (20); Retry-After
504 TIMEOUT Analysen tok for lang tid: over 90 s synkront, over 120 s i kø (da som feil.status i jobbstatus)

Grenser for metoden

Analysen er et estimat før befaring. Den ser ikke takets bæreevne, tekniske installasjoner under taktekkingen, brannkrav som ikke er synlige fra lufta, eller elektrisk kapasitet. Bruk kvalitetssjekk og grunnlag.advarsler aktivt, og la prosjekterende kontrollere før tilbud.