2025-11-02

The problem

Habitat size

  • How habitat size explains the genetic diversity of 7 species
  • Aglais urticae, Coenonympha tullia, Gonepteryx rhamni, Lycaena virgaureae, Maniola jurtina, Pieris napi, Thymelicus lineola
  • Nucleotide diversity \(\pi\): measures the average number of DNA differences per site, indicating genetic variation, one value for all sites in Denmark

Matching Environments

Task

  • Experts opinion on butterflies habitats
  • Have to map them to basemap landuses
Habitat Description
Næringsrig skov Næringsrige skove har en rig og varieret bundvegetation. En næringsrig, ofte kalkholdig, leret jordbund med muld. Træarter som bøg, eg og ask trives.1
Næringsfattig skov Jordbunden er ofte sandet, med mor og mindre bundvegetation. Typiske træarter er for eksempel fyr, birk og stilkeg.1
Tæt skov Skov og bevoksninger hvor træernes kroner når sammen og kun lidt lys når ned til skovbunden (om sommeren). Denne type omfatter både nåleskov og løvskov.1
Lysåben skov Skov og bevoksninger hvor træernes kroner ikke når sammen og meget lys når ned til skovbunden, også om sommeren. Denne type er oftest domineret af løvtræer.1
Skovkanter Grænsen mellem skov og åbent land.1
Skovlysninger Åbne områder i skov, inklusiv rydninger og brede skovveje.1
Krat Kratbevoksning der dækker mindst 25% af arealet, den omgivende vegetation vil typisk være domineret af græsser og/eller lyng. Området er ofte græsset.1,2
Overdrev Tørre områder domineret af græsser, ofte afgræssede. Kan også blive slået 1-2 gange årligt. Områderne er ikke i omdrift (der bliver ikke pløjet og sået). Der kan forekomme spredte træer og buske.1
Tør hede Tørre, oftest sandede områder hovedsageligt bevokset med hedelyng, revling og tyttebær. Der kan forekomme spredte træer og buske.2
Våd hede Våde hedeområder (domineret af hedelyng, revling og tyttebær), ofte med blåtop, klokkelyng og pors. Hvis der er et tørvelag, er det max en halv meter tykt.2
Højmose, Nedbrudt højmose og Hængesæk Højmose: mose hvor der er dannet så meget tørv at forbindelsen med grundvandet er afbrudt, og som derfor kun tilføres regnvand.2; Nedbrudt højmose: højmose hvor den naturlige vandbalance er blevet ødelagt (typisk gennem menneskelig påvirkning), men hvor den karakteristiske lysåbne højmosevegetation stadig findes. Mosefladen kan være delvist tilvokset med blåtop og træer (birk).2; Hængesæk: Sammenhængende vegetationsmåtter (ofte domineret af spagnummosser) der flyder på vand. Findes oftest i kanten af søer og vandhuller.2
Rigkær Våde, næringsfattige områder med kalkholdig jordbund, der huser en karakteristisk vegetation af lave star-arter, mosser, enkelte orkideer, vibefedt, melet kodriver, og leverurt. Naturtypen er ofte præget af en mosaik af åbne, græssede områder og tilgroede partier med højere vegetation. Der er svingende vandstand.
Kildevæld Kilder og væld med kalkholdigt vand er små, vandrige områder, ofte fundet i moser, kær eller skove. Vegetationen er karakteriseret af arter som vibefedt, langakset star og mosser fra slægten Cratoneuron mm. De er kendetegnet ved tilgængeligt, frit flydende kildevand i hovedparten af året.
Avneknippemose Karakteriseres af fugtig bundvegetation, ofte med dominans af hvas avneknippe. Den forekommer typisk i overgangsstadier mellem eng og mose, og kan både findes i kalkrige og sure områder.2
Skovbevokset tørvemose Delvist tilgroede tørvemoser og kantbevoksning omkring højmoser. Dominerende træ-arter er birk, skovfyr eller rødgran. Tørst og røn forekommer også. Bundvegetation kan indeholde græsser og halvgræsser og planter kendt fra både højmose og hede.2
Sumpskov/skovmose Skovbevoksninger på meget fugtig/våd bund og små våde (moseagtige) lysninger i skov.1
Næringsfattig våd eng Næringsfattige fugtige/våde (i hvert fald om vinteren) områder domineret af græsser, ofte afgræssede. Kan også blive slået 1-2 gange årligt. Områderne er ikke i omdrift (der bliver ikke pløjet og sået). Der kan forekomme spredte træer og buske.1,2
Næringsrig våd eng Næringsrige fugtige/våde (i hvert fald om vinteren) områder domineret af græsser, ofte afgræssede. Kan også blive slået 1-2 gange årligt. Områderne er ikke i omdrift (der bliver ikke pløjet og sået). Der kan forekomme spredte træer og buske.1,2
Vandløbskanter Fugtige og næringsrige bræmmer langs vandløb bevokset primært med græsser og flerårige urter, buske kan forekomme. Vegetationen bliver typisk hverken slået eller græsset.2
Strandoverdrev Kystnære (starter ovenfor vinterhøjvandslinjen) tørre områder domineret af græsser, ofte afgræssede. Kan også blive slået 1-2 gange årligt. Områderne er ikke i omdrift (der bliver ikke pløjet og sået). Der kan forekomme spredte træer og buske.1,3
Strandeng Kystnære (ligger nedenfor vinterhøjvandslinjen) fugtige områder domineret af græsser, ofte afgræssede. Kan også blive slået 1-2 gange årligt. Områderne er ikke i omdrift (der bliver ikke pløjet og sået).1,3
Kyst-skrænter Kystvendte skrænter dækket af vegetation, ofte domineret af græsser.1
Klitter Sandbakker dannet af vinden, ofte delvist dækket af vegetation, f.eks. marehalm og hjælme, samt andre græsser og urter på mindre udsatte klitter.1,2
Klitlavninger Fugtige lavninger og småsøer i klitter, typisk med urteagtig vegetation (langs kanten af søerne).2
Dyrkede marker (i omdrift) Marker der dyrkes (pløjes og tilsås), inklusiv flerårige græsmarker (omlægges min. hvert 5. år) og brakmarker (hvis de kun ligger brak i 1-2 år).1
Mark-kanter og markskel Striber af ’vild’ (selvsået) vegetation langs og mellem marker.1
Levende hegn Rækker af træer og buske, ofte plantet for at give læ.1
Ikke dyrkede, ikke bebyggede åbne områder inklusive ruderater. ’Hjørner’ med ’vild’ (selvsået) vegetation.1 Ofte domineret af ruderart-planter e.g. Mælkebøtte, Kølle-Hvene, Agersennep, Vejbred, Nælde. Eksempler på disse områder er, gamle industriområder, forladte byggepladser, gruvehuller og lergrave mm.
Landbrugsbebyggelse, nedlagte landbrug mm Områder, inklusiv haver, omkring boliger i landområder.1
Vejkanter og vejskråninger Ikke dyrkede arealer langs veje. Kan rumme både græsser, urter, buske og træer. Vejkanter og skråninger bliver ofte slået 1-2 gange per år.1
Grøftekanter Striber af ’vild’ (selvsået) vegetation langs grøfter.1
Landsbyer Mindre bymæssig bebyggelse af boliger med haver.1
Forstæder og villakvarterer Større sammenhængende bymæssig bebyggelse af boliger med haver.1
Midtby (centrum af større byer) Bycentre af større byer. F.eks., Vejle/Roskilde midtby (ca. 50.000-60.00 indbyggere) optil Københavns centrum (ca. 660.000).

Experts opinon

art Habitat Majority proportion
Aglais urticae Avneknippemose (0-3) 0 0.6
Aglais urticae Dyrkede marker (I omdrift) (0-3) 0 0.6
Aglais urticae Forstæder og villakvarterer (0-3) 2 0.6
Aglais urticae Grøftekanter (0-3) 3 0.6
Aglais urticae Højmose, nedbrudt højmose og hængesæk (0-3) 0 0.8
Aglais urticae Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) 3 0.6
Aglais urticae Kildevæld (0-3) 0 0.6
Aglais urticae Klitlavninger (0-3) 0 0.6
Aglais urticae Klitter (0-3) 0 0.6
Aglais urticae Krat (0-3) 2 0.4
Aglais urticae Kyst-skrænter (0-3) 1 0.8
Aglais urticae Landbrugsbebyggelse, nedlagte landbrug mm (0-3) 3 0.8
Aglais urticae Landsbyer (0-3) 2 NA
Aglais urticae Levende hegn (0-3) 3 0.8
Aglais urticae Lysåben skov (0-3) 2 NA
Aglais urticae Mark kanter og markskel (0-3) 2 NA
Aglais urticae Midtby (centrum af større byer) (0-3) 0 0.6
Aglais urticae Næringsfattig skov (0-3) 1 0.6
Aglais urticae Næringsfattig våd eng (0-3) 0 0.8
Aglais urticae Næringsrig skov (0-3) 2 NA
Aglais urticae Næringsrig våd eng (0-3) 1 0.4
Aglais urticae Overdrev (0-3) 2 NA
Aglais urticae Rigkær (0-3) 0 0.6
Aglais urticae Skovbevokset tørvmose (0-3) 1 NA
Aglais urticae Skovkanter (0-3) 3 0.8
Aglais urticae Skovlysninger (0-3) 2 NA
Aglais urticae Skovmose/Sumpskov (0-3) 1 0.6
Aglais urticae Strandeng (0-3) 1 NA
Aglais urticae Strandoverdrev (0-3) 1 NA
Aglais urticae Tæt skov (0-3) 0 1
Aglais urticae Tør hede (0-3) 0 0.6
Aglais urticae Vandløbskanter (0-3) 2 0.8
Aglais urticae Vejkanter og vejskråninger (0-3) 3 0.6
Aglais urticae Våd hede (0-3) 0 0.8
Pieris napi Avneknippemose (0-3) 1 NA
Pieris napi Dyrkede marker (I omdrift) (0-3) 1 0.6
Pieris napi Forstæder og villakvarterer (0-3) 2 0.6
Pieris napi Grøftekanter (0-3) 2 0.6
Pieris napi Højmose, nedbrudt højmose og hængesæk (0-3) 0 0.6
Pieris napi Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) 3 0.6
Pieris napi Kildevæld (0-3) 1 NA
Pieris napi Klitlavninger (0-3) 0 0.8
Pieris napi Klitter (0-3) 0 0.8
Pieris napi Krat (0-3) 2 NA
Pieris napi Kyst-skrænter (0-3) 0 0.6
Pieris napi Landbrugsbebyggelse, nedlagte landbrug mm (0-3) 3 0.6
Pieris napi Landsbyer (0-3) 2 0.6
Pieris napi Levende hegn (0-3) 3 0.8
Pieris napi Lysåben skov (0-3) 3 0.4
Pieris napi Mark kanter og markskel (0-3) 3 0.6
Pieris napi Midtby (centrum af større byer) (0-3) 1 NA
Pieris napi Næringsfattig skov (0-3) 2 NA
Pieris napi Næringsfattig våd eng (0-3) 1 NA
Pieris napi Næringsrig skov (0-3) 2 NA
Pieris napi Næringsrig våd eng (0-3) 0 0.4
Pieris napi Overdrev (0-3) 0 0.6
Pieris napi Rigkær (0-3) 0 0.4
Pieris napi Skovbevokset tørvmose (0-3) 0 0.6
Pieris napi Skovkanter (0-3) 3 0.6
Pieris napi Skovlysninger (0-3) 3 0.6
Pieris napi Skovmose/Sumpskov (0-3) 2 0.6
Pieris napi Strandeng (0-3) 1 NA
Pieris napi Strandoverdrev (0-3) 1 NA
Pieris napi Tæt skov (0-3) 1 NA
Pieris napi Tør hede (0-3) 0 1
Pieris napi Vandløbskanter (0-3) 1 0.4
Pieris napi Vejkanter og vejskråninger (0-3) 2 0.6
Pieris napi Våd hede (0-3) 0 1
Gonepteryx rhamni Avneknippemose (0-3) 1 0.6
Gonepteryx rhamni Dyrkede marker (I omdrift) (0-3) 0 0.8
Gonepteryx rhamni Forstæder og villakvarterer (0-3) 1 NA
Gonepteryx rhamni Grøftekanter (0-3) 1 NA
Gonepteryx rhamni Højmose, nedbrudt højmose og hængesæk (0-3) 1 0.4
Gonepteryx rhamni Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) 1 NA
Gonepteryx rhamni Kildevæld (0-3) 1 NA
Gonepteryx rhamni Klitlavninger (0-3) 0 1
Gonepteryx rhamni Klitter (0-3) 0 1
Gonepteryx rhamni Krat (0-3) 3 0.4
Gonepteryx rhamni Kyst-skrænter (0-3) 0 1
Gonepteryx rhamni Landbrugsbebyggelse, nedlagte landbrug mm (0-3) 1 NA
Gonepteryx rhamni Landsbyer (0-3) 1 NA
Gonepteryx rhamni Levende hegn (0-3) 1 0.6
Gonepteryx rhamni Lysåben skov (0-3) 3 1
Gonepteryx rhamni Mark kanter og markskel (0-3) 0 0.6
Gonepteryx rhamni Midtby (centrum af større byer) (0-3) 0 0.6
Gonepteryx rhamni Næringsfattig skov (0-3) 2 0.6
Gonepteryx rhamni Næringsfattig våd eng (0-3) 1 0.6
Gonepteryx rhamni Næringsrig skov (0-3) 2 0.6
Gonepteryx rhamni Næringsrig våd eng (0-3) 1 NA
Gonepteryx rhamni Overdrev (0-3) 0 0.6
Gonepteryx rhamni Rigkær (0-3) 1 NA
Gonepteryx rhamni Skovbevokset tørvmose (0-3) 2 0.6
Gonepteryx rhamni Skovkanter (0-3) 3 0.8
Gonepteryx rhamni Skovlysninger (0-3) 3 1
Gonepteryx rhamni Skovmose/Sumpskov (0-3) 2 0.6
Gonepteryx rhamni Strandeng (0-3) 0 0.8
Gonepteryx rhamni Strandoverdrev (0-3) 0 0.8
Gonepteryx rhamni Tæt skov (0-3) 1 NA
Gonepteryx rhamni Tør hede (0-3) 0 0.6
Gonepteryx rhamni Vandløbskanter (0-3) 1 NA
Gonepteryx rhamni Vejkanter og vejskråninger (0-3) 1 NA
Gonepteryx rhamni Våd hede (0-3) 0 0.8
Maniola jurtina Avneknippemose (0-3) 1 0.6
Maniola jurtina Dyrkede marker (I omdrift) (0-3) 0 0.6
Maniola jurtina Forstæder og villakvarterer (0-3) 1 0.6
Maniola jurtina Grøftekanter (0-3) 3 0.8
Maniola jurtina Højmose, nedbrudt højmose og hængesæk (0-3) 1 0.6
Maniola jurtina Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) 3 0.8
Maniola jurtina Kildevæld (0-3) 1 NA
Maniola jurtina Klitlavninger (0-3) 1 0.6
Maniola jurtina Klitter (0-3) 1 NA
Maniola jurtina Krat (0-3) 1 0.6
Maniola jurtina Kyst-skrænter (0-3) 3 NA
Maniola jurtina Landbrugsbebyggelse, nedlagte landbrug mm (0-3) 3 0.6
Maniola jurtina Landsbyer (0-3) 2 0.6
Maniola jurtina Levende hegn (0-3) 2 0.6
Maniola jurtina Lysåben skov (0-3) 3 0.6
Maniola jurtina Mark kanter og markskel (0-3) 2 NA
Maniola jurtina Midtby (centrum af større byer) (0-3) 0 0.8
Maniola jurtina Næringsfattig skov (0-3) 2 NA
Maniola jurtina Næringsfattig våd eng (0-3) 1 0.6
Maniola jurtina Næringsrig skov (0-3) 1 0.6
Maniola jurtina Næringsrig våd eng (0-3) 2 0.6
Maniola jurtina Overdrev (0-3) 3 0.8
Maniola jurtina Rigkær (0-3) 1 0.4
Maniola jurtina Skovbevokset tørvmose (0-3) 0 0.6
Maniola jurtina Skovkanter (0-3) 3 0.8
Maniola jurtina Skovlysninger (0-3) 3 0.6
Maniola jurtina Skovmose/Sumpskov (0-3) 1 1
Maniola jurtina Strandeng (0-3) 2 0.6
Maniola jurtina Strandoverdrev (0-3) 2 0.6
Maniola jurtina Tæt skov (0-3) 0 0.8
Maniola jurtina Tør hede (0-3) 2 0.6
Maniola jurtina Vandløbskanter (0-3) 2 0.8
Maniola jurtina Vejkanter og vejskråninger (0-3) 3 0.8
Maniola jurtina Våd hede (0-3) 1 0.6
Lycaena virgaureae Avneknippemose (0-3) 0 0.8
Lycaena virgaureae Dyrkede marker (I omdrift) (0-3) 0 1
Lycaena virgaureae Forstæder og villakvarterer (0-3) 0 0.6
Lycaena virgaureae Grøftekanter (0-3) 1 0.8
Lycaena virgaureae Højmose, nedbrudt højmose og hængesæk (0-3) 1 0.8
Lycaena virgaureae Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) 2 0.6
Lycaena virgaureae Kildevæld (0-3) 0 0.6
Lycaena virgaureae Klitlavninger (0-3) 0 0.6
Lycaena virgaureae Klitter (0-3) 0 0.6
Lycaena virgaureae Krat (0-3) 1 NA
Lycaena virgaureae Kyst-skrænter (0-3) 0 0.6
Lycaena virgaureae Landbrugsbebyggelse, nedlagte landbrug mm (0-3) 0 0.6
Lycaena virgaureae Landsbyer (0-3) 0 0.6
Lycaena virgaureae Levende hegn (0-3) 1 NA
Lycaena virgaureae Lysåben skov (0-3) 2 NA
Lycaena virgaureae Mark kanter og markskel (0-3) 0 0.6
Lycaena virgaureae Midtby (centrum af større byer) (0-3) 0 0.8
Lycaena virgaureae Næringsfattig skov (0-3) 1 NA
Lycaena virgaureae Næringsfattig våd eng (0-3) 1 NA
Lycaena virgaureae Næringsrig skov (0-3) 1 NA
Lycaena virgaureae Næringsrig våd eng (0-3) 1 0.6
Lycaena virgaureae Overdrev (0-3) 3 1
Lycaena virgaureae Rigkær (0-3) 0 0.6
Lycaena virgaureae Skovbevokset tørvmose (0-3) 0 0.8
Lycaena virgaureae Skovkanter (0-3) 3 0.4
Lycaena virgaureae Skovlysninger (0-3) 3 0.6
Lycaena virgaureae Skovmose/Sumpskov (0-3) 1 NA
Lycaena virgaureae Strandeng (0-3) 1 NA
Lycaena virgaureae Strandoverdrev (0-3) 1 NA
Lycaena virgaureae Tæt skov (0-3) 0 0.8
Lycaena virgaureae Tør hede (0-3) 2 0.6
Lycaena virgaureae Vandløbskanter (0-3) 1 NA
Lycaena virgaureae Vejkanter og vejskråninger (0-3) 1 0.4
Lycaena virgaureae Våd hede (0-3) 1 0.6
Thymelicus lineola Avneknippemose (0-3) 0 0.6
Thymelicus lineola Dyrkede marker (I omdrift) (0-3) 0 0.8
Thymelicus lineola Forstæder og villakvarterer (0-3) 0 0.6
Thymelicus lineola Grøftekanter (0-3) 1 0.6
Thymelicus lineola Højmose, nedbrudt højmose og hængesæk (0-3) 0 0.6
Thymelicus lineola Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) 2 NA
Thymelicus lineola Kildevæld (0-3) 2 NA
Thymelicus lineola Klitlavninger (0-3) 1 NA
Thymelicus lineola Klitter (0-3) 1 0.6
Thymelicus lineola Krat (0-3) 1 0.4
Thymelicus lineola Kyst-skrænter (0-3) 2 NA
Thymelicus lineola Landbrugsbebyggelse, nedlagte landbrug mm (0-3) 1 0.4
Thymelicus lineola Landsbyer (0-3) 1 NA
Thymelicus lineola Levende hegn (0-3) 1 0.6
Thymelicus lineola Lysåben skov (0-3) 3 0.6
Thymelicus lineola Mark kanter og markskel (0-3) 1 0.6
Thymelicus lineola Midtby (centrum af større byer) (0-3) 0 0.6
Thymelicus lineola Næringsfattig skov (0-3) 2 NA
Thymelicus lineola Næringsfattig våd eng (0-3) 1 0.4
Thymelicus lineola Næringsrig skov (0-3) 1 NA
Thymelicus lineola Næringsrig våd eng (0-3) 1 0.4
Thymelicus lineola Overdrev (0-3) 3 1
Thymelicus lineola Rigkær (0-3) 2 NA
Thymelicus lineola Skovbevokset tørvmose (0-3) 0 0.6
Thymelicus lineola Skovkanter (0-3) 3 0.6
Thymelicus lineola Skovlysninger (0-3) 3 0.6
Thymelicus lineola Skovmose/Sumpskov (0-3) 0 0.6
Thymelicus lineola Strandeng (0-3) 2 0.6
Thymelicus lineola Strandoverdrev (0-3) 1 NA
Thymelicus lineola Tæt skov (0-3) 0 0.8
Thymelicus lineola Tør hede (0-3) 2 0.6
Thymelicus lineola Vandløbskanter (0-3) 1 0.4
Thymelicus lineola Vejkanter og vejskråninger (0-3) 1 0.6
Thymelicus lineola Våd hede (0-3) 1 0.6
Coenonympha tullia Avneknippemose (0-3) 0 0.6
Coenonympha tullia Dyrkede marker (I omdrift) (0-3) 0 1
Coenonympha tullia Forstæder og villakvarterer (0-3) 0 1
Coenonympha tullia Grøftekanter (0-3) 0 1
Coenonympha tullia Højmose, nedbrudt højmose og hængesæk (0-3) 3 0.8
Coenonympha tullia Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) 0 1
Coenonympha tullia Kildevæld (0-3) 1 0.4
Coenonympha tullia Klitlavninger (0-3) 0 0.8
Coenonympha tullia Klitter (0-3) 0 1
Coenonympha tullia Krat (0-3) 0 0.8
Coenonympha tullia Kyst-skrænter (0-3) 0 1
Coenonympha tullia Landbrugsbebyggelse, nedlagte landbrug mm (0-3) 0 1
Coenonympha tullia Landsbyer (0-3) 0 1
Coenonympha tullia Levende hegn (0-3) 0 1
Coenonympha tullia Lysåben skov (0-3) 0 1
Coenonympha tullia Mark kanter og markskel (0-3) 0 1
Coenonympha tullia Midtby (centrum af større byer) (0-3) 0 1
Coenonympha tullia Næringsfattig skov (0-3) 0 1
Coenonympha tullia Næringsfattig våd eng (0-3) 0 0.8
Coenonympha tullia Næringsrig skov (0-3) 0 1
Coenonympha tullia Næringsrig våd eng (0-3) 0 0.8
Coenonympha tullia Overdrev (0-3) 0 1
Coenonympha tullia Rigkær (0-3) 2 NA
Coenonympha tullia Skovbevokset tørvmose (0-3) 1 0.4
Coenonympha tullia Skovkanter (0-3) 0 1
Coenonympha tullia Skovlysninger (0-3) 0 0.8
Coenonympha tullia Skovmose/Sumpskov (0-3) 0 NA
Coenonympha tullia Strandeng (0-3) 0 1
Coenonympha tullia Strandoverdrev (0-3) 0 1
Coenonympha tullia Tæt skov (0-3) 0 1
Coenonympha tullia Tør hede (0-3) 0 0.8
Coenonympha tullia Vandløbskanter (0-3) 0 0.8
Coenonympha tullia Vejkanter og vejskråninger (0-3) 0 1
Coenonympha tullia Våd hede (0-3) 1 0.6
  • 34 distinct habitat categories that need to be matched with habitat classifications from the spatial basemap.
  • Not the same Basemap landuses

Current solution

AI plus expert knowledge

from langchain_openai import ChatOpenAI
import os
import pandas as pd
from dotenv import load_dotenv
import time

# Load environment variables and set your OpenAI API key
load_dotenv()
openai_api_key = os.getenv("OPENAI_API_KEY")

# Create the ChatOpenAI instance with the "gpt-4o-mini" model
llm = ChatOpenAI(
    openai_api_key=openai_api_key,
    model="gpt-4o-mini",
    temperature=0.0,
    top_p=0.95,
    stop=None
)

def match_habitat(expert_name, expert_desc, basemap_layers, basemap_label):
    """
    Given an expert habitat name and description,
    returns a recommendation of basemap layer categories from the specified list.
    """
    prompt = f"""
You are an expert in habitat classification and spatial analysis.
I have the following expert habitat definition:

Habitat Name: "{expert_name}"
Description: "{expert_desc}"

I also have a list of basemap layer categories from a Danish basemap ({basemap_label}):
{', '.join(basemap_layers)}

Based on the above expert definition, please recommend which basemap layer categories should be combined to represent this habitat.
Provide a comma-separated list of the most appropriate basemap layer names and include a brief explanation.
"""
    result = llm.invoke(prompt)
    return result

# Load the habitat definitions from the CSV file
habitat_df = pd.read_csv("habitat_description.csv")

# Define the three basemap layer lists (update these with your actual values)
basemap_layers_C_05 = [
    "Sø", "Areal omkring bebyggelse", "Øvelsesareal", "Militære anlæg", 
    "Øvelsesareal (ubevokset_bar)", "Publikumsareal", "Skydebane", 
    "Grusgrav", "Bæltevej", "Brandbaelte", "Eng", "Strandsump", 
    "Mose", "Strandeng", "Hede", "Frit areal (overdrev)", "Slette, Overdrev (Slette)", 
    "Slette, Overdrev (overdrev)", "Klit", "Strandbred", "Ukultiveret areal", 
    "Hvidel", "Løvtræ uden særlig kode", "Ask", "Bævreasp", "Birk", 
    "Bøg", "Contorta", "Eg", "El", "Elm", "Ær", "Kirsebær", "Lind", 
    "Pil", "Poppel", "Rødeg", "Rødel", "Røn", "Krat", "Japansk lærk", 
    "Grandis", "Nåletræ uden særlig kode", "Bjergfyr", "Cypres", 
    "Douglas", "Europæisk lærk", "Frans bjergfyr", "Almindelig ædelgran", 
    "Lærk", "Nordmannsgran", "Nobilis", "Omorika", "Østrigsk fyr", 
    "Rødgran", "Sitagran", "Skovfyr", "Hvidgran", "Ager", "Slette, Overdrev (græsset)", 
    "Vildtager", "Campingplads", "Golfbane", "Park", "Ruin, gravhøj", 
    "Råstofgrav", "Brændeplads", "Marsk", "Klippe", "Skrænt", 
    "Avnbøg", "Ægte kastanie", "Hassel", "Hestekastanie", "Kristtorn", 
    "Spidsløn", "Veitchii", "Cryptomeria", "Fransk bjergfyr", "Hybridlærk", 
    "Weymouthsfyr", "Thuja", "Tsuga", "Planteskole", "Overdrev", 
    "Strandvold med enårig vegetation", "Strandvold med flerårig vegetation", 
    "Kystklint/klippe", "Enårig strandengsvegetation", "Vadegræssamfund", 
    "Indlandssalteng", "Forklit", "Hvid klit", "Grå/grøn klit", 
    "Klithede", "Havtornklit", "Grårisklit", "Skovklit", "Klitlavning", 
    "Enebærklit", "Visse-indlandsklit", "Revling-indlandsklit", 
    "Græs-indlandsklit", "Våd hede", "Tør hede", "Enekrat", "Tør overdrev på kalkholdigt sand", 
    "Kalkoverdrev", "Surt overdrev", "Tidvis våd eng", "Bræmmer med høje urter langs vandløb eller skyggende skovbryn", 
    "Højmose", "Nedbrudt højmose", "Hængesæk", "Tørvelavning", 
    "Avneknippemose", "Kildevæld", "Rigkær", "Indlandsklippe", 
    "Bøg på mor", "Bøg på mor med kristtorn", "Bøg på muld", 
    "Bøg på kalk", "Ege-blandskov", "Vinteregeskov", "Stilkege-krat", 
    "Skovbevoksede tørvemoser", "Elle- og askeskov ved vandløb, søer og væld", 
    "Rekreativt område", "Land", "Hav", "Teknisk areal", "Bassin", 
    "Skov", "Vådområde", "Sand / klit", "Havn", "Bygning", "Bykerne", 
    "Erhverv", "Lav bebyggelse", "Høj bebyggelse", "Vandloebskant", 
    "Vejmidte", "Jernbane", "Vandløbsmidte", "Startbane", "Begravelsesområde", 
    "Matrikel, vej", "Matrikel, jernbane", "Matrikel, strandbeskyttelse", 
    "Tyskland"
]

basemap_layers_C_09 = [
    "Sø", "Areal omkring bebyggelse", "Øvelsesareal", "Militære anlæg", 
    "Øvelsesareal (ubevokset_bar)", "Publikumsareal", "Skydebane", 
    "Grusgrav", "Bæltevej", "Brandbaelte", "Eng", "Strandsump", 
    "Mose", "Strandeng", "Hede", "Frit areal (overdrev)", "Slette, Overdrev (Slette)", 
    "Slette, Overdrev (overdrev)", "Klit", "Strandbred", "Ukultiveret areal", 
    "Hvidel", "Løvtræ uden særlig kode", "Ask", "Bævreasp", "Birk", 
    "Bøg", "Contorta", "Eg", "El", "Elm", "Ær", "Kirsebær", "Lind", 
    "Pil", "Poppel", "Rødeg", "Rødel", "Røn", "Krat", "Japansk lærk", 
    "Grandis", "Nåletræ uden særlig kode", "Bjergfyr", "Cypres", 
    "Douglas", "Europæisk lærk", "Frans bjergfyr", "Almindelig ædelgran", 
    "Lærk", "Nordmannsgran", "Nobilis", "Omorika", "Østrigsk fyr", 
    "Rødgran", "Sitagran", "Skovfyr", "Hvidgran", "Ager", "Slette, Overdrev (græsset)", 
    "Vildtager", "Campingplads", "Golfbane", "Park", "Ruin, gravhøj", 
    "Råstofgrav", "Brændeplads", "Marsk", "Klippe", "Skrænt", 
    "Avnbøg", "Ægte kastanie", "Hassel", "Hestekastanie", "Kristtorn", 
    "Spidsløn", "Veitchii", "Cryptomeria", "Fransk bjergfyr", "Hybridlærk", 
    "Weymouthsfyr", "Thuja", "Tsuga", "Planteskole", "Overdrev", 
    "Strandvold med enårig vegetation", "Strandvold med flerårig vegetation", 
    "Kystklint/klippe", "Enårig strandengsvegetation", "Vadegræssamfund", 
    "Indlandssalteng", "Forklit", "Hvid klit", "Grå/grøn klit", 
    "Klithede", "Havtornklit", "Grårisklit", "Skovklit", "Klitlavning", 
    "Enebærklit", "Visse-indlandsklit", "Revling-indlandsklit", 
    "Græs-indlandsklit", "Våd hede", "Tør hede", "Enekrat", "Tør overdrev på kalkholdigt sand", 
    "Kalkoverdrev", "Surt overdrev", "Tidvis våd eng", "Bræmmer med høje urter langs vandløb eller skyggende skovbryn", 
    "Højmose", "Nedbrudt højmose", "Hængesæk", "Tørvelavning", 
    "Avneknippemose", "Kildevæld", "Rigkær", "Indlandsklippe", 
    "Bøg på mor", "Bøg på mor med kristtorn", "Bøg på muld", 
    "Bøg på kalk", "Ege-blandskov", "Vinteregeskov", "Stilkege-krat", 
    "Skovbevoksede tørvemoser", "Elle- og askeskov ved vandløb, søer og væld", 
    "Rekreativt område", "Land", "Hav", "Teknisk areal, Affaldsanlæg", 
    "Teknisk areal, Genbrugsplads", "Teknisk areal, Energiforsyningsanlæg", 
    "Teknisk areal, Solenergi", "Teknisk areal, Vindmøllepark", 
    "Teknisk areal, Togstation/rangéranlæg", "Teknisk areal, Vandrensningsanlæg", 
    "Teknisk areal, Vandværk", "Teknisk areal, Rekreativt anlæg", 
    "Teknisk areal, Sportsanlæg", "Teknisk areal, Golfplads", "Teknisk areal, Landingsbane", 
    "Teknisk areal, Lufthavn", "Teknisk areal, Materielgård", "Teknisk areal, Militært anlæg", 
    "Teknisk areal, Parkeringsanlæg", "Teknisk areal, Ikke tildelt", 
    "Teknisk areal, Ukendt", "Teknisk areal, Baneterræn", "Bassin, Andet", 
    "Bassin, Ikke tildelt", "Bassin, Overløbsbassin", "Bassin, Rensningsanlæg", 
    "Bassin, Svømmebassin", "Bassin, Ukendt", "Skov", "Vådområde", 
    "Sand / klit", "Sø, Fiskedam", "Sø, Sø", "Havn", "Bygning, Bygning", 
    "Bygning, Tank/Silo", "Bygning, Husbåd", "Bygning, Drivhus", 
    "Bygning, Solpanel", "Bykerne", "Erhverv", "Lav bebyggelse", 
    "Høj bebyggelse", "Vandloebskant, >=12 m bredde", "Vejmidte, Trafikvej-Gennemfart, Befæstet, Motorvej", 
    "Vejmidte, Trafikvej-Gennemfart, Befæstet, Motortrafikvej", 
    "Vejmidte, Trafikvej-Gennemfart, Befæstet, Al færdsel", "Vejmidte, Trafikvej-Fordeling, Befæstet", 
    "Vejmidte, Lokalvej-Primær, Befæstet", "Vejmidte, Lokalvej-Sekundær, Befæstet", 
    "Vejmidte, Lokalvej-Sekundær, Ubefæstet", "Vejmidte, Lokalvej-Tertiær, Befæstet", 
    "Vejmidte, Lokalvej-Tertiær, Befæstet, Gågade", "Vejmidte, Lokalvej-Tertiær, Ubefæstet", 
    "Vejmidte, Anden vej, Befæstet", "Vejmidte, Anden vej, Befæstet, Gågade", 
    "Vejmidte, Anden vej, Ubefæstet", "Vejmidte, Indkørselsvej, Befæstet", 
    "Vejmidte, Indkørselsvej, Ubefæstet", "Jernbane, Synlig", "Vandløbsmidte, 2,5 - 12 m bredde", 
    "Vandløbsmidte, >=12 m bredde", "Startbane, Start/landing", 
    "Startbane, Taxivej", "Startbane, Plads", "Begravelsesområde", 
    "Matrikel, vej", "Matrikel, jernbane", "Matrikel, strandbeskyttelse", 
    "Tyskland"
]

basemap_layers_C_12 = [
    "Sø", "Andet bebyggelse", "Rekreativt område / sportsanlæg", 
    "Råstofudvinding", "Natur, tør", "Natur, våd", "Skov", "Landbrug, intensivt, midlertidige afgrøder", 
    "Landbrug, intensivt, permanente afgrøder", "Skov, våd", "Ikke kortlagt", 
    "Hav", "Jernbane", "Lufthavn / landingsbane", "Bygning", "Bykerne", 
    "Erhverv", "Lav bebyggelse", "Høj bebyggelse", "Vandløb", "Vej, befæstet", 
    "Vej, ikke befæstet", "Tyskland"
]

# Dictionaries to store recommendations for each basemap list
results_C_05 = {}
results_C_09 = {}
results_C_12 = {}

# Define a function to save intermediate results
def save_intermediate_results():
    df_results = pd.DataFrame({
        "Habitat": list(results_C_05.keys()),
        "C_05 Recommendation": [results_C_05[h] for h in results_C_05.keys()],
        "C_09 Recommendation": [results_C_09[h] for h in results_C_05.keys()],
        "C_12 Recommendation": [results_C_12[h] for h in results_C_05.keys()]
    })
    df_results.to_csv("habitat_layer_mapping_intermediate.csv", index=False)
    print("Intermediate results saved.")

# Iterate over each row in the CSV and query the API for each basemap list
for idx, row in habitat_df.iterrows():
    habitat_name = row["Habitat"]
    habitat_description = row["Description"]
    
    try:
        results_C_05[habitat_name] = match_habitat(habitat_name, habitat_description, basemap_layers_C_05, "C_05")
        results_C_09[habitat_name] = match_habitat(habitat_name, habitat_description, basemap_layers_C_09, "C_09")
        results_C_12[habitat_name] = match_habitat(habitat_name, habitat_description, basemap_layers_C_12, "C_12")
        print(f"Processed: {habitat_name}")
    except Exception as e:
        print(f"Error processing {habitat_name}: {e}")
    # Save after processing each habitat (you can adjust the frequency if needed)
    save_intermediate_results()
    # Optional: add a short delay to prevent rate limiting
    time.sleep(1)

# Final save (in case all habitats processed without interruption)
save_intermediate_results()
print("Mapping recommendations saved to 'habitat_layer_mapping_intermediate.xlsx'.")

Results LLM

habitat extracted_text_05 extracted_text_09 extracted_text_12
Næringsrig skov Løvtræ uden særlig kode,Bøg,Eg,Ask,Ege-blandskov,Bøg på muld,Bøg på kalk,Elle- og askeskov ved vandløb, søer og væld,Skov Løvtræ uden særlig kode,Bøg,Eg,Ask,Ege-blandskov,Bøg på muld,Bøg på kalk,Elle- og askeskov ved vandløb, søer og væld,Skov , Skov, Natur, tør,
Næringsfattig skov Skov,Løvtræ uden særlig kode,Birk,Fyr,Stilkege-krat,Nåletræ uden særlig kode Skov,Løvtræ uden særlig kode,Birk,Fyr,Stilkege,Nåletræ uden særlig kode , Skov, Natur, tør,
Tæt skov Skov,Løvtræ uden særlig kode,Bøg,Eg,Ask,Bævreasp,Rødel,Røn,Krat,Nåletræ uden særlig kode,Rødgran,Sitagran,Skovfyr,Hvidgran,Douglas,Europæisk lærk,Hybridlærk Skov,Løvtræ uden særlig kode,Ask,Bævreasp,Birk,Bøg,Eg,Elm,Rødel,Røn,Nåletræ uden særlig kode,Rødgran,Sitagran,Skovfyr,Hvidgran,Grandis,Douglas,Europæisk lærk,Hybridlærk,Nordmannsgran,Vinteregeskov,Ege-blandskov Skov, Natur, tør, Natur, våd,
Lysåben skov Løvtræ uden særlig kode,Ask,Bævreasp,Birk,Bøg,Eg,Elle- og askeskov ved vandløb, søer og væld,Ege-blandskov,Skov Løvtræ uden særlig kode,Ask,Bævreasp,Birk,Bøg,Eg,Elle- og askeskov ved vandløb, søer og væld,Ege-blandskov,Vinteregeskov,Skov , Skov, Natur, tør,
Skovkanter Skov,Eng,Overdrev,Hede,Krat,Løvtræ uden særlig kode,Nåletræ uden særlig kode,Bræmmer med høje urter langs vandløb eller skyggende skovbryn Løvtræ uden særlig kode,Birk,Bøg,Eg,Skov,Overdrev,Eng,Hede,Krat,Våd hede,Tør hede,Strandeng Skov,Landbrug, intensivt,Natur, tør,Natur, våd
Skovlysninger Skov,Frit areal (overdrev),Overdrev (Slette),Overdrev (græsset),Vejmidte,Bæltevej Skov,Frit areal (overdrev),Overdrev (Slette),Overdrev (græsset),Vejmidte, Lokalvej-Tertiær, Befæstet,Vejmidte, Anden vej, Befæstet Skov,Natur, tør,Vej, befæstet,Vej, ikke befæstet
Krat Krat,Hede,Overdrev (Slette),Overdrev (græsset),Tør hede,Stilkege-krat Krat,Hede,Overdrev (Slette),Overdrev (overdrev),Frit areal (overdrev) Natur, tør,Skov,Landbrug, intensivt,Rekreativt område / sportsanlæg
Overdrev Overdrev (Slette),Overdrev (overdrev),Overdrev (græsset),Tør overdrev på kalkholdigt sand,Kalkoverdrev,Surt overdrev Overdrev (Slette),Overdrev (overdrev),Overdrev (græsset),Tør overdrev på kalkholdigt sand,Kalkoverdrev,Surt overdrev Natur, tør,Landbrug, intensivt,Skov, våd (for areas with scattered trees and shrubs)
Tør hede Hede,Tør hede,Klit,Overdrev (Slette),Frit areal (overdrev),Ukultiveret areal Hede,Tør hede,Overdrev (Slette),Klit,Sand / klit,Ukultiveret areal Natur, tør,Skov, våd,Landbrug, intensivt,Andet bebyggelse
Våd hede Våd hede,Hede,Tør hede,Vadegræssamfund,Tidvis våd eng,Klithede Hede,Våd hede,Tør hede,Mose,Eng,Tidvis våd eng,Klithede,Vadegræssamfund Natur, våd,Natur, tør,Skov, våd
Højmose, Nedbrudt højmose og Hængesæk Højmose,Nedbrudt højmose,Hængesæk,Mose,Våd hede,Strandsump Højmose,Nedbrudt højmose,Hængesæk,Mose,Våd hede,Strandsump Natur, våd,Natur, tør,Skov, våd,Sø,Vandløb
Rigkær Mose,Våde områder,Eng,Strandsump,Tidvis våd eng,Højmose,Kalkoverdrev,Vadegræssamfund Mose,Våde områder,Eng,Strandsump,Tidvis våd eng,Højmose,Kalkoverdrev,Vadegræssamfund Natur, våd,Natur, tør,Skov, våd,Rekreativt område / sportsanlæg
Kildevæld Kilder,Mose,Hængesæk,Elle- og askeskov ved vandløb, søer og væld,Våd hede,Rigkær Kilder og væld,Mose,Strandsump,Eng,Hængesæk,Våd hede,Rigkær,Elle- og askeskov ved vandløb, søer og væld Natur, våd,Skov, våd,Vandløb,Sø
Avneknippemose Mose,Højmose,Nedbrudt højmose,Tidvis våd eng,Strandsump,Våd hede,Eng Mose,Højmose,Nedbrudt højmose,Strandsump,Tidvis våd eng,Våd hede,Eng content=’To represent the habitat “Avneknippemose,” the most appropriate basemap layer categories from the provided list would be:, Natur, våd, Natur, tør, Rekreativt område / sportsanlæg,
Skovbevokset tørvemose Skovbevoksede tørvemoser,Højmose,Nedbrudt højmose,Krat,Birk,Rødgran,Skovfyr,Røn,Vådområde Mose,Skovbevoksede tørvemoser,Birk,Rødgran,Skovfyr,Røn,Højmose,Nedbrudt højmose,Krat Skov,Natur, tør,Natur, våd
Sumpskov/skovmose Skov,Mose,Våd hede,Højmose,Elle- og askeskov ved vandløb, søer og væld,Vådområde Skov (Forest),Mose (Mire),Højmose (High Mire),Hængesæk (Hanging Sedge),Våd hede (Wet Heath),Elle- og askeskov ved vandløb, søer og væld (Alder and Ash Forest by Watercourses, Lakes, and Springs),Vådområde (Wetland) Skov,Skov, våd,Natur, våd
Næringsfattig våd eng Eng,Tidvis våd eng,Våd hede,Strandsump,Mose,Overdrev (græsset),Højmose Eng,Tidvis våd eng,Strandsump,Mose,Våd hede,Højmose,Rigkær,Vådområde Natur, våd,Landbrug, intensivt,Skov, våd
Næringsrig våd eng Eng,Tidvis våd eng,Våd hede,Mose,Strandsump,Højmose,Rigkær,Vådområde Eng,Tidvis våd eng,Strandsump,Mose,Våd hede,Højmose,Rigkær,Vadegræssamfund Natur, våd,Landbrug, intensivt,Skov, våd,Rekreativt område / sportsanlæg
Vandløbskanter Vandløbskant,Bræmmer med høje urter langs vandløb eller skyggende skovbryn,Elle- og askeskov ved vandløb, søer og væld,Våd hede,Eng,Mose Vandløbsmidte, >=12 m bredde,Vandløbsmidte, 2,5 - 12 m bredde,Bræmmer med høje urter langs vandløb eller skyggende skovbryn,Elle- og askeskov ved vandløb, søer og væld,Eng,Mose Natur, våd,Vandløb,Skov, våd,Rekreativt område / sportsanlæg (if applicable)
Strandoverdrev Overdrev (overdrev),Overdrev (græsset),Strandeng,Klit,Tør overdrev på kalkholdigt sand,Frit areal (overdrev),Strandbred Overdrev (græsset),Overdrev,Strandeng,Klit,Frit areal (overdrev),Tør overdrev på kalkholdigt sand,Kalkoverdrev Natur, tør,Landbrug, intensivt,Rekreativt område / sportsanlæg
Strandeng Strandeng,Eng,Strandsump,Vadegræssamfund,Tidvis våd eng,Højmose Strandeng,Eng,Strandsump,Våd hede,Tidvis våd eng Natur, våd,Natur, tør,Landbrug, intensivt, midlertidige afgrøder,Rekreativt område / sportsanlæg
Kyst-skrænter Skrænt,Kystklint/klippe,Strandbred,Klit,Overdrev (græsset),Strandvold med flerårig vegetation Skrænt,Kystklint/klippe,Klit,Strandbred,Overdrev (græsset) Natur, tør,Natur, våd,Hav
Klitter Klit,Sand / klit,Strandvold med enårig vegetation,Strandvold med flerårig vegetation,Græs-indlandsklit,Hvid klit,Grå/grøn klit Klit,Sand / klit,Strandvold med enårig vegetation,Strandvold med flerårig vegetation,Græs-indlandsklit,Hvid klit,Grå/grøn klit Natur, tør,Natur, våd,Landbrug, intensivt, midlertidige afgrøder,Rekreativt område / sportsanlæg
Klitlavninger Klit,Klitlavning,Sø,Våd hede,Strandsump,Mose,Tidvis våd eng,Hængesæk Klitlavning,Sø,Mose,Strandsump,Tidvis våd eng,Våd hede Natur, våd,Sø,Vandløb,Rekreativt område / sportsanlæg
Dyrkede marker (i omdrift) Ager,Eng,Overdrev,Brakmarker (if applicable, though not explicitly listed, it may be represented by “Overdrev” or “Slette”) Ager,Eng,Overdrev (Slette),Brakmarker (if applicable),Frit areal (overdrev) Landbrug, intensivt, midlertidige afgrøder,Landbrug, intensivt, permanente afgrøder
Mark-kanter og markskel Ukultiveret areal,Overdrev,Eng,Hede,Bræmmer med høje urter langs vandløb eller skyggende skovbryn Ukultiveret areal,Overdrev,Eng,Hede,Vildtager,Bræmmer med høje urter langs vandløb eller skyggende skovbryn Landbrug, intensivt,Natur, tør,Natur, våd
Levende hegn Løvtræ uden særlig kode,Ask,Bævreasp,Birk,Bøg,Eg,Elm,Pil,Poppel,Røn,Krat,Ege-blandskov,Skov Løvtræ uden særlig kode,Ask,Bævreasp,Birk,Bøg,Eg,Elm,Pil,Røn,Krat,Ege-blandskov,Skov content=’To represent the habitat “Levende hegn,” the most appropriate basemap layer categories from the provided list would be:, Skov, Natur, tør, Natur, våd, Landbrug, intensivt,
Ikke dyrkede, ikke bebyggede åbne områder inklusive ruderater. Ukultiveret areal,Ruderater,Frit areal (overdrev),Overdrev,Grusgrav,Ruin,Forladte byggepladser (if available as a specific category) Ukultiveret areal,Ruderater,Grusgrav,Overdrev,Frit areal (overdrev),Tidvis våd eng,Højmose,Våd hede,Klithede,Eng Råstofudvinding,Andet bebyggelse,Natur, tør,Ikke kortlagt
Landbrugsbebyggelse, nedlagte landbrug mm Areal omkring bebyggelse,Land,Lav bebyggelse,Høj bebyggelse,Rekreativt område,Park,Have Areal omkring bebyggelse,Land,Lav bebyggelse,Høj bebyggelse,Rekreativt område,Park,Haver Landbrug, intensivt, midlertidige afgrøder,Landbrug, intensivt, permanente afgrøder,Lav bebyggelse,Andet bebyggelse
Vejkanter og vejskråninger Vejmidte (Road Median),Vej (Road),Ukultiveret areal (Uncultivated Area),Frit areal (overdrev) (Free Area - Pasture),Højmose (High Moor),Bræmmer med høje urter langs vandløb eller skyggende skovbryn (Margins with Tall Herbs along Watercourses or Shady Forest Edges) Vejmidte, Trafikvej-Gennemfart, Befæstet,Vejmidte, Trafikvej-Fordeling, Befæstet,Vejmidte, Lokalvej-Primær, Befæstet,Vejmidte, Lokalvej-Sekundær, Befæstet,Vejmidte, Lokalvej-Tertiær, Befæstet,Vejmidte, Anden vej, Befæstet,Ukultiveret areal,Frit areal (overdrev),Græs-indlandsklit,Højmose,Tør hede,Klithede Vej, befæstet,Vej, ikke befæstet,Natur, tør,Natur, våd
Grøftekanter Vandløbsmidte (Watercourse margin),Bræmmer med høje urter langs vandløb eller skyggende skovbryn (Margins with tall herbs along watercourses or shading forest edges),Ukultiveret areal (Uncultivated area),Eng (Meadow),Tør hede (Dry heath) Bræmmer med høje urter langs vandløb eller skyggende skovbryn,Vandløbsmidte, 2,5 - 12 m bredde,Vandløbsmidte, >=12 m bredde,Ukultiveret areal,Eng,Overdrev (Slette) Natur, tør,Natur, våd,Vandløb,Vej, ikke befæstet
Landsbyer Lav bebyggelse (Low buildings),Høj bebyggelse (High buildings),Bykerne (City core),Rekreativt område (Recreational area),Areal omkring bebyggelse (Area around buildings),Haven (Gardens, if available as a specific category) Lav bebyggelse,Høj bebyggelse,Bygning,Husbåd,Rekreativt område,Park,Have Lav bebyggelse,Høj bebyggelse,Bygning,Rekreativt område / sportsanlæg
Forstæder og villakvarterer Bygning (Building),Lav bebyggelse (Low Building),Høj bebyggelse (High Building),Rekreativt område (Recreational Area),Park (Park),Areal omkring bebyggelse (Area around Buildings) Lav bebyggelse (Low buildings),Høj bebyggelse (High buildings),Areal omkring bebyggelse (Area around buildings),Park (Park),Rekreativt område (Recreational area),Vejmidte (Road center),Gågade (Pedestrian street) Bygning,Lav bebyggelse,Høj bebyggelse,Vej, befæstet,Rekreativt område / sportsanlæg
Midtby (centrum af større byer) Bykerne,Høj bebyggelse,Lav bebyggelse,Erhverv,Rekreativt område,Publikumsareal,Vejmidte,Jernbane Bykerne,Høj bebyggelse,Lav bebyggelse,Erhverv,Gågade,Trafikvej-Gennemfart,Vejmidte,Indkørselsvej,Jernbane,Parkeringsanlæg,Rekreativt område Bygning,Bykerne,Høj bebyggelse,Lav bebyggelse,Erhverv,Vej, befæstet

Adding EcoDes-DK15

habitat Narrow Broad Additional layers
Næringsrig skov ,- Bøg på muld, - Bøg på kalk , - Løvtræ uden særlig kode, - Bøg, - Ask, - Bøg på muld, - Bøg på kalk, NA
Næringsfattig skov , - Birk, - Fyr, - Stilkege-krat , as narrow NA
Tæt skov , - Skov, - Løvtræ uden særlig kode, - Bøg, - Nåletræ uden særlig kode, - Rødgran, - Sitagran, - Hvidgran, - Douglas , as narrow ECODES density > 90 %
Lysåben skov , - Løvtræ uden særlig kode, - Ask, - Bævreasp, - Birk, - Bøg, - Eg, - Elle- og askeskov ved vandløb, søer og væld, - Ege-blandskov, - Vinteregeskov, - Skov , - Løvtræ uden særlig kode, - Ask, - Bævreasp, - Birk, - Bøg, - Eg, - Elle- og askeskov ved vandløb, søer og væld, - Ege-blandskov, - Vinteregeskov, - Skov ECODES density < 50 %
Skovkanter , - Løvtræ uden særlig kode, , - Løvtræ uden særlig kode, - Skov, % meters of all forest edges
Skovlysninger , - Løvtræ uden særlig kode, - Skov, , - Løvtræ uden særlig kode, - Skov,- Vejmidte, Lokalvej-Tertiær, Befæstet, - Vejmidte, Anden vej, Befæstet ECODES; areas with hight < 2 metres in forest, and > 20x20 m wihtin forests
Krat , - Krat, - Stilkege-krat , - Krat, - Hede, - Overdrev (Slette), - Overdrev (græsset), - Tør hede, - Stilkege-krat NA
Overdrev , - Overdrev (Slette), - Overdrev (overdrev), - Overdrev (græsset), - Tør overdrev på kalkholdigt sand, - Kalkoverdrev, - Surt overdrev , as narrow NA
Tør hede , - Hede, - Tør hede, - Klit, - Overdrev (Slette), - Frit areal (overdrev), - Ukultiveret areal NA NA
Våd hede , - Våd hede, - Klithede , - Våd hede, - Hede, - Tør hede, - Tidvis våd eng, - Klithede NA
Højmose, Nedbrudt højmose og Hængesæk , - Højmose, - Nedbrudt højmose, - Hængesæk, , as narrow NA
Rigkær ,- Tidvis våd eng, - Rigkær , as narrow OBS - Why is 7230 og “rigkær” not on the list!
Kildevæld , - Kilder, , - Kilder, - Elle- og askeskov ved vandløb, søer og væld, - Rigkær NA
Avneknippemose , - Avneknippemose , as narrow NA
Skovbevokset tørvemose , - Skovbevoksede tørvemoser, , - Skovbevoksede tørvemoser, - Nedbrudt højmose, NA
Sumpskov/skovmose , - Elle- og askeskov ved vandløb, søer og væld, - Vådområde , as narrow NA
Næringsfattig våd eng , - Tidvis våd eng, - Rigkær, , - Eng, - Tidvis våd eng, - Mose NA
Næringsrig våd eng , - Eng, - Vådområde, - Mose , as narrow NA
Vandløbskanter , - Vandløbskant, - Bræmmer med høje urter langs vandløb eller skyggende skovbryn, , as narrow NA
Strandoverdrev , - Overdrev (Slette), - Overdrev (overdrev), - Overdrev (græsset), - Tør overdrev på kalkholdigt sand, - Kalkoverdrev, - Surt overdrev NA OBS - distance to coast 200 m
Strandeng , - Strandeng, , as narrow NA
Kyst-skrænter , - Kystklint/klippe, , - Skrænt, - Kystklint/klippe, OBS - distance to coast 200 m
Klitter , - Klit, - Sand / klit, - Hvid klit, , - Klit, - Sand / klit, , - Græs-indlandsklit, - Hvid klit, - Grå/grøn klit NA
Klitlavninger , - Klitlavning, , as narrow NA
Dyrkede marker (i omdrift) , - Landbrug, intensivt, midlertidige afgrøder, - Landbrug, intensivt, permanente afgrøder , as narrow NA
Mark-kanter og markskel NA NA NA
Levende hegn NA NA NA
Ikke dyrkede, ikke bebyggede åbne områder inklusive ruderater. , - Ukultiveret areal, - Ruderater, - Grusgrav, - Ruin, - Forladte byggepladser (if available as a specific category) , as narrow NA
Landbrugsbebyggelse, nedlagte landbrug mm , - Areal omkring bebyggelse, , - Areal omkring bebyggelse, - Land, - Lav bebyggelse, - Høj bebyggelse, - Rekreativt område, - Park, - Have Only to be included outside cities
Vejkanter og vejskråninger NA , - Vej, befæstet, - Vej, ikke befæstet, Only include edges e.g. 2 metres on both sides OBS - Grøftekanter and Vejkanter treated together!
Grøftekanter NA , - Vej, befæstet, - Vej, ikke befæstet, Only include edges e.g. 2 metres on both sides OBS - Grøftekanter and Vejkanter treated together!
Landsbyer , - Lav bebyggelse (Low buildings), Have , as narrow OBS - Landsbyer og forståeder treated together
Forstæder og villakvarterer , - Lav bebyggelse (Low buildings), Have , as narrow OBS - Landsbyer og forståeder treated together
Midtby (centrum af større byer) , - Bykerne, , as narrow NA

How some species look

habitat Historical Narrow
Næringsrig skov Deciduous Forest Nutrient Rich ,- Bøg på muld, - Bøg på kalk
Næringsfattig skov Deciduous Forest Nutrient Poor , - Birk, - Fyr, - Stilkege-krat
Tæt skov Forest , - Skov, - Løvtræ uden særlig kode, - Bøg, - Nåletræ uden særlig kode, - Rødgran, - Sitagran, - Hvidgran, - Douglas
Lysåben skov Forest , - Løvtræ uden særlig kode, - Ask, - Bævreasp, - Birk, - Bøg, - Eg, - Elle- og askeskov ved vandløb, søer og væld, - Ege-blandskov, - Vinteregeskov, - Skov
Skovkanter Forest edge plus , - Løvtræ uden særlig kode,
Skovlysninger Medows and open areas within forest , - Løvtræ uden særlig kode, - Skov,
Krat Shrubland , - Krat, - Stilkege-krat
Overdrev Open, correct with data from Nele or Topography , - Overdrev (Slette), - Overdrev (overdrev), - Overdrev (græsset), - Tør overdrev på kalkholdigt sand, - Kalkoverdrev, - Surt overdrev
Tør hede heath , - Hede, - Tør hede, - Klit, - Overdrev (Slette), - Frit areal (overdrev), - Ukultiveret areal
Våd hede heath, Topography , - Våd hede, - Klithede
Højmose, Nedbrudt højmose og Hængesæk Bogs, Nutrient poor , - Højmose, - Nedbrudt højmose, - Hængesæk,
Rigkær Meadow or Fern/Bog? ,- Tidvis våd eng, - Rigkær
Kildevæld Springs , - Kilder,
Avneknippemose Bogs, Calcareus , - Avneknippemose
Skovbevokset tørvemose Forests and carbon rich soil above 2% , - Skovbevoksede tørvemoser,
Sumpskov/skovmose Forest wet rich soil , - Elle- og askeskov ved vandløb, søer og væld, - Vådområde
Næringsfattig våd eng Nutrient poor meadow , - Tidvis våd eng, - Rigkær,
Næringsrig våd eng Nutrient rich meadow , - Eng, - Vådområde, - Mose
Vandløbskanter River edge , - Vandløbskant, - Bræmmer med høje urter langs vandløb eller skyggende skovbryn,
Strandoverdrev Open, close to sea , - Overdrev (Slette), - Overdrev (overdrev), - Overdrev (græsset), - Tør overdrev på kalkholdigt sand, - Kalkoverdrev, - Surt overdrev
Strandeng Meadow, close to sea , - Strandeng,
Kyst-skrænter Steep slopes close to the sea (check forest vs open contemporary too) , - Kystklint/klippe,
Klitter Dunes? , - Klit, - Sand / klit, - Hvid klit,
Klitlavninger Dunes? , - Klitlavning,
Dyrkede marker (i omdrift) Open land (Nele/Topography) , - Landbrug, intensivt, midlertidige afgrøder, - Landbrug, intensivt, permanente afgrøder
Mark-kanter og markskel Ridge, (correct with change past to present) NA
Levende hegn Hedges NA
Ikke dyrkede, ikke bebyggede åbne områder inklusive ruderater. Open , - Ukultiveret areal, - Ruderater, - Grusgrav, - Ruin, - Forladte byggepladser (if available as a specific category)
Landbrugsbebyggelse, nedlagte landbrug mm Houses and gardens outside cities , - Areal omkring bebyggelse,
Vejkanter og vejskråninger Roads NA
Grøftekanter Roads NA
Landsbyer Villages , - Lav bebyggelse (Low buildings), Have
Forstæder og villakvarterer Suburbs , - Lav bebyggelse (Low buildings), Have
Midtby (centrum af større byer) City , - Bykerne,

This is how they look

Questions?