2025-03-31

LLM

Introduction: Why Use LLMs for Ecological Research?

  • Traditional prompting with ChatGPT can be powerful, but lacks consistency and traceability
  • Using the OpenAI API enables:
    • Reproducibility of results across time and users
  • Batch processing of many prompts systematically
  • Version control over the model, temperature, and logic used
  • Prompts can be stored in scripts and documented
  • Results can be revisited, audited, and reproduced
  • Also Llama, Gemma, etc

Already in use

Advantages of OpenAI API Use (vs Manual Prompting)

  • Reproducible Workflows: Ensures the same input produces the same result each time
  • Scalability: Easily handle hundreds of prompts without manual intervention
  • Customizability: Control parameters like temperature, max tokens, model version, and stop sequences
  • Integration: Easily incorporate into existing R or Python pipelines
  • Transparency: Scripts and logs provide a clear record of decisions

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).
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

Basemap

  • Landuse of Denmark at 10x10 m very different aggregation levels

Comparison with Lu_00 in basemap

Loading Basemap Habitat Classifications

To perform the matching, we extract unique habitat classifications from the attribute table (.dbf file) of the basemap.

Many landuse options

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

Potential solutions

  • Tried going through it by hand (Took us about an hour to go through one class)
  • Fuzzy matching with several layers
  • LLM?

Fuzzy matching

  • Looked for the closest match in each layer

  • table for review:

unique_habs clean_unique_habs c_05 c_09 c_12
Avneknippemose (0-3) Avneknippemose Avneknippemose Avneknippemose Jernbane
Dyrkede marker (I omdrift) (0-3) Dyrkede marker (I omdrift) Frit areal (overdrev) Frit areal (overdrev) Ikke kortlagt
Forstæder og villakvarterer (0-3) Forstæder og villakvarterer Frit areal (overdrev) Frit areal (overdrev) Andet bebyggelse
Grøftekanter (0-3) Grøftekanter Golfbane Golfbane Natur, tør
Højmose, nedbrudt højmose og hængesæk (0-3) Højmose, nedbrudt højmose og hængesæk Nedbrudt højmose Nedbrudt højmose Høj bebyggelse
Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater Strandvold med flerårig vegetation Strandvold med flerårig vegetation Landbrug, intensivt, midlertidige afgrøder
Kildevæld (0-3) Kildevæld Kildevæld Kildevæld Skov
Klitlavninger (0-3) Klitlavninger Klitlavning Klitlavning Bygning
Klitter (0-3) Klitter Klit Klit Erhverv
Krat (0-3) Krat Krat Krat Hav
Kyst-skrænter (0-3) Kyst-skrænter Skrænt Skrænt Natur, tør
Landbrugsbebyggelse, nedlagte landbrug mm (0-3) Landbrugsbebyggelse, nedlagte landbrug mm Lav bebyggelse Lav bebyggelse Landbrug, intensivt, permanente afgrøder
Landsbyer (0-3) Landsbyer Land Land Vandløb
Levende hegn (0-3) Levende hegn Strandeng Strandeng Jernbane
Lysåben skov (0-3) Lysåben skov Ege-blandskov Ege-blandskov Skov
Mark kanter og markskel (0-3) Mark kanter og markskel Ukultiveret areal Ukultiveret areal Lav bebyggelse
Midtby (centrum af større byer) (0-3) Midtby (centrum af større byer) Skovbevoksede tørvemoser Skovbevoksede tørvemoser Andet bebyggelse
Næringsfattig skov (0-3) Næringsfattig skov Vinteregeskov Vinteregeskov Natur, tør
Næringsfattig våd eng (0-3) Næringsfattig våd eng Tidvis våd eng Tidvis våd eng Natur, våd
Næringsrig skov (0-3) Næringsrig skov Vinteregeskov Vinteregeskov Natur, tør
Næringsrig våd eng (0-3) Næringsrig våd eng Tidvis våd eng Tidvis våd eng Natur, våd
Overdrev (0-3) Overdrev Overdrev Overdrev Bykerne
Rigkær (0-3) Rigkær Rigkær Rigkær Skov
Skovbevokset tørvmose (0-3) Skovbevokset tørvmose Skovbevoksede tørvemoser Skovbevoksede tørvemoser Skov, våd
Skovkanter (0-3) Skovkanter Skovklit Skovklit Skov
Skovlysninger (0-3) Skovlysninger Skovfyr Skovfyr Bygning
Skovmose/Sumpskov (0-3) Skovmose/Sumpskov Strandsump Strandsump Skov
Strandeng (0-3) Strandeng Strandeng Strandeng Jernbane
Strandoverdrev (0-3) Strandoverdrev Surt overdrev Surt overdrev Erhverv
Tæt skov (0-3) Tæt skov Skov Skov Skov
Tør hede (0-3) Tør hede Tør hede Tør hede Jernbane
Vandløbskanter (0-3) Vandløbskanter Vandloebskant Skydebane Vandløb
Vejkanter og vejskråninger (0-3) Vejkanter og vejskråninger Vinteregeskov Vinteregeskov Natur, våd
Våd hede (0-3) Våd hede Våd hede Våd hede Jernbane

Comparison with Lu_01 in basemap

  • Same exercise differnt layer

  • table for review:

unique_habs clean_unique_habs c_05 c_09 c_12 c_02 c_05b c_20
Avneknippemose (0-3) Avneknippemose Avneknippemose Avneknippemose Jernbane Avneknippemose Lav bebyggelse Lav bebyggelse
Dyrkede marker (I omdrift) (0-3) Dyrkede marker (I omdrift) Frit areal (overdrev) Frit areal (overdrev) Ikke kortlagt Frit areal (overdrev) Vej, ikke befæstet Bykerne; Bygning
Forstæder og villakvarterer (0-3) Forstæder og villakvarterer Frit areal (overdrev) Frit areal (overdrev) Andet bebyggelse Surt overdrev Natur, tør Natur, tør
Grøftekanter (0-3) Grøftekanter Golfbane Golfbane Natur, tør Golfbane Natur, tør Natur, tør
Højmose, nedbrudt højmose og hængesæk (0-3) Højmose, nedbrudt højmose og hængesæk Nedbrudt højmose Nedbrudt højmose Høj bebyggelse Nedbrudt højmose Høj bebyggelse Høj bebyggelse; Bygning
Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater (0-3) Ikke dyrkede, ikke bebyggede åbne områder, inklusive ruderater Strandvold med flerårig vegetation Strandvold med flerårig vegetation Landbrug, intensivt, midlertidige afgrøder Vejmidte, Lokalvej-Sekundær, Befæstet Landbrug, intensivt, midlertidige afgrøder Landbrug, intensivt, midlertidige afgrøder
Kildevæld (0-3) Kildevæld Kildevæld Kildevæld Skov Kildevæld Hav Hav
Klitlavninger (0-3) Klitlavninger Klitlavning Klitlavning Bygning Klitlavning Bygning Bygning
Klitter (0-3) Klitter Klit Klit Erhverv Klit Erhverv Erhverv
Krat (0-3) Krat Krat Krat Hav Krat Hav Hav
Kyst-skrænter (0-3) Kyst-skrænter Skrænt Skrænt Natur, tør Skrænt Natur, tør Natur, tør
Landbrugsbebyggelse, nedlagte landbrug mm (0-3) Landbrugsbebyggelse, nedlagte landbrug mm Lav bebyggelse Lav bebyggelse Landbrug, intensivt, permanente afgrøder Lav bebyggelse Landbrug, intensivt, permanente afgrøder Andet bebyggelse; Bygning
Landsbyer (0-3) Landsbyer Land Land Vandløb Land Vandløb Vandløb
Levende hegn (0-3) Levende hegn Strandeng Strandeng Jernbane Overdrev Jernbane Jernbane
Lysåben skov (0-3) Lysåben skov Ege-blandskov Ege-blandskov Skov Ege-blandskov Skov Skov
Mark kanter og markskel (0-3) Mark kanter og markskel Ukultiveret areal Ukultiveret areal Lav bebyggelse Rekreativt område Lav bebyggelse Lav bebyggelse
Midtby (centrum af større byer) (0-3) Midtby (centrum af større byer) Skovbevoksede tørvemoser Skovbevoksede tørvemoser Andet bebyggelse Skovbevoksede tørvemoser Natur, tør Natur, tør
Næringsfattig skov (0-3) Næringsfattig skov Vinteregeskov Vinteregeskov Natur, tør Vinteregeskov Natur, tør Natur, tør
Næringsfattig våd eng (0-3) Næringsfattig våd eng Tidvis våd eng Tidvis våd eng Natur, våd Tidvis våd eng Natur, våd Natur, våd
Næringsrig skov (0-3) Næringsrig skov Vinteregeskov Vinteregeskov Natur, tør Vinteregeskov Natur, tør Natur, tør
Næringsrig våd eng (0-3) Næringsrig våd eng Tidvis våd eng Tidvis våd eng Natur, våd Tidvis våd eng Natur, våd Natur, våd
Overdrev (0-3) Overdrev Overdrev Overdrev Bykerne Overdrev Erhverv Erhverv
Rigkær (0-3) Rigkær Rigkær Rigkær Skov Rigkær Skov Skov
Skovbevokset tørvmose (0-3) Skovbevokset tørvmose Skovbevoksede tørvemoser Skovbevoksede tørvemoser Skov, våd Skovbevoksede tørvemoser Skov, våd Skov, våd
Skovkanter (0-3) Skovkanter Skovklit Skovklit Skov Skovklit Skov Skov
Skovlysninger (0-3) Skovlysninger Skovfyr Skovfyr Bygning Skovfyr Bygning Bygning
Skovmose/Sumpskov (0-3) Skovmose/Sumpskov Strandsump Strandsump Skov Strandsump Skov Skov
Strandeng (0-3) Strandeng Strandeng Strandeng Jernbane Strandeng Bygning Bygning
Strandoverdrev (0-3) Strandoverdrev Surt overdrev Surt overdrev Erhverv Surt overdrev Erhverv Erhverv
Tæt skov (0-3) Tæt skov Skov Skov Skov Skov Skov Skov
Tør hede (0-3) Tør hede Tør hede Tør hede Jernbane Tør hede Erhverv Erhverv
Vandløbskanter (0-3) Vandløbskanter Vandloebskant Skydebane Vandløb Sand / klit Vandløb Vandløb
Vejkanter og vejskråninger (0-3) Vejkanter og vejskråninger Vinteregeskov Vinteregeskov Natur, våd Vinteregeskov Vej, ikke befæstet Jernbane; Bygning
Våd hede (0-3) Våd hede Våd hede Våd hede Jernbane Våd hede Vandløb Vandløb

Evaluating Matching Accuracy

To assess which column has the highest number of exact matches with clean_unique_habs, we calculate the number of direct matches for each column:

Column Exact_Matches
c_02 8
c_02b 0
c_05 8
c_05b 0
c_09 8
c_12 0
c_20 0

Use of LLM

  • We soon realized that many classes make one Butterfly habitat
  • Sometimes we need to use many different layers
  • It becomes hard to look at all the options at the same time
  • OpenAI api, to make it fast and reproducible

Script

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

Other potential uses

  • Beyond habitat mapping:
    • Literature classification (e.g., PRISMA screening)
  • Matching species to trait databases
  • Generating training datasets for supervised learning
  • Other API functionalities:
    • Embedding-based similarity search
  • Transcribe & summarize interviews (Whisper API)
  • Building Assistants tailored for ecological tasks
  • Open questions:
    • When to trust LLM outputs?
    • How to validate results at scale?
    • Best practices for combining domain expertise + LLM workflows