Et åbent, interaktivt kort over mere end 100.000 registrerede gravhøje, andre gravminder, runesten, kirker og daterede bynavne i Danmark.
Oldtidskort gør Slots- og Kulturstyrelsens landsdækkende data fra Fund og Fortidsminder nemme at udforske. Zoom ind på dit lokalområde, filtrér efter periode eller fredningsstatus, og klik på et punkt for at gå videre til den officielle registrering.
Kortet viser blandt andet rundhøje, langhøje, dysser, jættestuer, skibssætninger og gravpladser. Både fredede og ikke-fredede registreringer er med. Det er et historisk register — ikke en garanti for, at et gravminde stadig er synligt eller tilgængeligt i landskabet.
Kortet starter med kun gravhøje slået til. Topbaren har faner for gravhøje,
runesten, bynavne og kirker. Hver fane har sin egen til/fra-knap og egne
filtre, inklusive periode. Faneskift bevarer aktive lag og deres filtre. Det gør det muligt at holde lagene op
mod hinanden — for eksempel -lev-byernes jernaldernavne mod bronzealderens
gravhøje, eller -torp-navnenes udflytterbebyggelser mod runestenene.
Den nemmeste vej er den offentlige udgave på GitHub Pages:
https://kasperjunge.github.io/oldtidskort/
Vil du køre projektet lokalt eller hente de nyeste kildedata:
git clone https://github.com/kasperjunge/oldtidskort.git
cd oldtidskort
uv sync --extra dev
uv run oldtidskort mapKortet åbner på http://127.0.0.1:8000/web/. Første kørsel henter data fra
Fund og Fortidsminder; derefter genbruges den lokale cache. Hent på ny med:
uv run oldtidskort map --refreshsrc/oldtidskort/
core/ fælles datamodel, geometri og output
sources/ adaptere til de eksterne datakilder
pipeline.py hent → normalisér → validér → skriv
cli.py kommandolinjen
web/ selve kortoplevelsen
scripts/
build_static_site.py lokalt build til GitHub Pages
docs/ kilder og datamodel
tests/ parser- og pipeline-tests
Pipeline-output gemmes som GeoJSON til kortbrug og Parquet til analyse i
data/processed/. Rå og genererede data bliver ikke committed på main.
data/curated/ indeholder derimod de håndkuraterede datasæt, der er en del af
kildekoden: runestensresearchen og bynavnenes endelsesklassifikation.
Pages-sitet bygges bevidst lokalt for nu — der er ingen GitHub Action. Det kompakte build indeholder de samme kortpunkter, men kun de felter browseren bruger.
uv run oldtidskort build fund_og_fortidsminder
uv run oldtidskort build bynavne_osm
uv run oldtidskort build kirker_osm
uv run python scripts/build_runestone_research.py
uv run python scripts/build_static_site.py
uv run python -m http.server 8000 --directory .pages-distÅbn http://127.0.0.1:8000. .pages-dist/ er det færdige statiske site, som
publiceres fra repoets gh-pages-branch. En automatiseret build/deploy kan
tilføjes senere uden at ændre selve sitet.
Maintainers kan bygge og pushe gh-pages lokalt i én arbejdsgang:
./scripts/deploy_pages.sh --dry-run
./scripts/deploy_pages.shEn dry-run kører preflight, tests, data-refresh, build og validering uden at
pushe. Den egentlige deployment overskriver kun den genererede gh-pages-branch;
main og lokale kildedata på main røres ikke. Scriptet genhenter begge
publicerede datakilder, kontrollerer at buildet indeholder både gravminder og
runesten og verificerer til sidst datafilen på det offentlige site.
Bynavnelaget henter danske bebyggelser fra OpenStreetMap og daterer dem efter
navneendelsen ud fra det kuraterede datasæt i
data/curated/placename_suffixes/. -lev, -inge og -um hører til ældre
jernalder, -by og -torp/-rup til vikingetiden, -rød og -tved til
middelalderens rydningskolonisation.
Endelsen daterer navnetypen, ikke bebyggelsen: en landsby kan være ældre end sit navn, og enkelte navne er sene efterligninger af et gammelt mønster. Hver endelse har derfor en angivet sikkerhed, som kan filtreres på i kortet. Læs datasættets README før brug.
Datapipelinen har også en adapter til kirker fra OpenStreetMap. Byg alle lag samt et samlet datasæt med:
uv run oldtidskort build allSe datakilder og kendte faldgruber og den fælles datamodel for detaljerne.
Det genbrugelige researchdatasæt i data/curated/runestones/ skelner mellem
oprindeligt opstillingssted, fundsted, nuværende placering og endnu
uklassificerede registerpunkter. Hvert sted har metode, usikkerhed, begrundelse,
kildeudsagn og reviewstatus. Se datasættets README før brug; importerede rækker
er ikke det samme som individuelt fagligt godkendte rækker.
uv run pytest
uv run ruff check .Bidrag er velkomne — især forbedringer af typeudvælgelsen, datakvalitet, tilgængelighed og kortoplevelsen. Åbn et issue med en fejl, et ønske eller en idé — også gerne før større ændringer. Du kan også fange mig på LinkedIn.
Gravhøjsdata kommer fra
Fund og Fortidsminder hos
Slots- og Kulturstyrelsen. Runestensresearchen bygger på Wikidata (CC0).
Bynavne og baggrundskort er © OpenStreetMap-bidragsydere (ODbL).
Endelsesdateringen refererer dansk navneforskning; se
data/curated/placename_suffixes/sources.csv.
Projektets kildekode er udgivet under MIT-licensen; kildedata følger deres egne
vilkår og er ikke omfattet af MIT.
