Linker til dokumenter i attributtvisning
Dokumenter og geografiske objekter er ofte tett sammenvevd i bruk og i datastrukturer i offentlige informasjonssystemer. Lagring av dokumenter i ArcGIS Online støtter slikt samspill. Mye informasjon i kommunens fagarkiver med scannet, historisk informasjon er ordnet slik at oppslag fra en visning av matrikkelenhet er mulig og ønskelig. Det som blir vist i det følgende tar utgangspunkt i at dokumentinformasjon blir gjort tilgjengelig fra Identify-panelet, valgt Matrikkelenhets seksjon med full egenskapsvisning.
Dokumentlinker - forutsetninger og oppretting
Oppretting av dokumentlinker er ikke lenger en pop-up-konfigurasjonsjobb i ArcGIS Online. Det er opprettet en mekanisme som oppretter linker der dokumenter ligger lagret i AGOL, med forutsatte tagger og filnavn. Se under for anvisning om dette.
Lagring av dokumenter i ArcGIS Online
Dokumenter i ArcGIS Online regnes som fillagring (file storage), ikke som objektlagring (feature storage). Fillagring koster 1,2 credits per GB per måned, så selv store dokumentsamlinger gir lav kostnad. For eksempel koster 2 GB med dokumenter omtrent 29 credits i året. Se Esris oversikt over credits for gjeldende satser.
Krav til dokumenter
Det foreligger krav til filnavnsyntaks og tagging.
Filnavnsyntaks; Navn skal være på formen: kommunenr-gardsnr-bruksnr-festenr-seksjonsnr-eventuelt dokumentløpenummer. Dokumentløpenummer kommer inn der flere sider av opprinnelig dokument er scanna. Eksempel på visning i Origo basert på ferdig oppsett:

Ledende '0' må bli fylt inn der aktuell verdi har mindre enn 3 sifre. Det er ikke nødvendig å fylle inn verdi for feste- eller seksjonsnummer der dette ikke er relevant.
Tags; Når dokumentene er lagt inn i AGOL, må de bli tagga som følger:
- Målebrev, tag 'målebrev'
- Skylddelinger, tag 'skylddelinger'
- Festekontrakter, tag 'festekontrakter'
Deling; Dokumentene skal deles med organisasjonen, ikke offentlig. Målebrev, skylddelinger og festekontrakter kan inneholde personopplysninger. Saksbehandlere som er innlogget i organisasjonen, finner og åpner dem likevel. Ved manuell opplasting må du selv sette deling til organisasjonen. Notebooken under gjør dette automatisk.
Merk at denne tag-/dokumenttypelista ikke er ment å være uttømmende, men spesifikt inneholder dokumenttypene vi har blitt bedt om å støtte til nå.
Import av enkeltdokumenter
Enkeltdokumenter kan legges til i ArcGIS Online ved å finne dem på disk eller ved å bruke dra og slipp-funksjonalitet. Fra Mitt Innhold under fanen Innhold velger du Nytt Element:
Dette gir mulighet til å legge til en fil fra ulike plasseringer, eller ved å dra og slippe den.
Dra og slipp dokument:

Batch import av mange dokumenter
Den mest effektive måten å importere mange dokumenter til ArcGIS Online på er å kjøre et Python-skript i en Jupyter Notebook i ArcGIS Pro. En notebook er delt inn i celler som du kjører én etter én, slik at du kan se resultatet av hvert steg før du går videre. Skriptet krever ArcGIS Pro 3.3 eller nyere.
Skriptet gjør følgende:
- Laster bare opp PDF-filer. Andre filer i katalogen blir ignorert.
- Hopper over filer med ugyldig filnavn, slik at du kan rette dem før du kjører på nytt. Se Krav til dokumenter.
- Hopper over filer som allerede ligger i mappa i AGOL. Du kan derfor trygt kjøre skriptet flere ganger.
- Fortsetter med neste fil hvis én opplasting feiler, og viser en oppsummering til slutt.
Alternativ 1: Last ned ferdig notebook
- Last ned notebooken import_dokumenter_agol.ipynb.
- Legg filen i prosjektmappa, og åpne den fra Catalog-panelet i ArcGIS Pro.
- Endre innstillingene i celle 1, og kjør cellene i rekkefølge.
Alternativ 2: Lag notebooken selv
Åpne en ny notebook i ArcGIS Pro:

Kopier hver av cellene under inn i en egen celle i notebooken, og kjør dem i rekkefølge.
Celle 1: Innstillinger. Endre katalogen og dokumenttypen til det du skal laste opp.
lokal_katalog = r'C:\temp\origo\målebrev' # Katalog med PDF-filer på din maskin
dokumenttype = 'målebrev' # 'målebrev', 'skylddelinger' eller 'festekontrakter'
Celle 2: Logg inn og finn mappa i ArcGIS Online. Logger inn som ArcGIS Pro-brukeren og sjekker om mappa for dokumenttypen finnes.
import os
import re
from arcgis.gis import GIS
gis = GIS('Pro')
print("Logget inn som: " + gis.properties.user.username)
agol_mappe = 'Filer - ' + dokumenttype.capitalize()
folder = gis.content.folders.get(agol_mappe)
# Henter titlene på dokumentene som allerede ligger i mappa
eksisterende = set()
if folder:
søk = gis.content.advanced_search(
query="owner:" + gis.users.me.username + " AND ownerfolder:" + folder.properties['id'],
max_items=-1, as_dict=True)
eksisterende = {resultat['title'] for resultat in søk['results']}
if folder:
print("Mappe i AGOL: " + agol_mappe + " (" + str(len(eksisterende)) + " dokumenter fra før)")
else:
print("Mappe i AGOL: " + agol_mappe + " (blir opprettet ved opplasting)")
Celle 3: Sjekk filene. Viser hvilke filer som blir lastet opp, og hvilke som hoppes over. Ingenting lastes opp i dette steget. Rett eventuelle ugyldige filnavn, og kjør cellen på nytt.
# Kommunenr-gardsnr-bruksnr, eventuelt fulgt av festenr, seksjonsnr og dokumentløpenummer
gyldig_filnavn = re.compile(r'^\d{4}-\d{3,}-\d{3,}(-\d*){0,3}$')
skal_lastes_opp, hoppet_over = [], []
for filename in sorted(os.listdir(lokal_katalog)):
name, file_extension = os.path.splitext(filename)
if file_extension.lower() != '.pdf':
continue
if not gyldig_filnavn.match(name):
hoppet_over.append(filename + " (ugyldig filnavn)")
elif name in eksisterende:
hoppet_over.append(filename + " (finnes allerede i AGOL)")
else:
skal_lastes_opp.append(filename)
print("Klare for opplasting: " + str(len(skal_lastes_opp)))
print("Hoppes over: " + str(len(hoppet_over)))
for f in hoppet_over:
print(" " + f)
Celle 4: Last opp. Laster opp filene fra celle 3 og deler dem med organisasjonen. Hvis én fil feiler, fortsetter opplastingen med neste. Du kan trygt kjøre celle 3 og 4 på nytt, fordi filer som allerede er lastet opp, hoppes over.
if folder is None:
folder = gis.content.folders.create(agol_mappe)
overført, feilet = [], []
for filename in skal_lastes_opp:
name = os.path.splitext(filename)[0]
try:
file_properties = {'title': name,
'type': 'PDF',
'tags': 'pdf, ' + dokumenttype}
file_item = folder.add(item_properties=file_properties,
file=os.path.join(lokal_katalog, filename)).result()
file_item.sharing.sharing_level = 'ORG'
overført.append(filename)
eksisterende.add(name)
print(name + " er overført")
except Exception as feil:
feilet.append(filename + " (" + str(feil) + ")")
print()
print("Overført: " + str(len(overført)))
print("Feilet: " + str(len(feilet)))
for f in feilet:
print(" " + f)
Konfigurere generelt uttrykk for dokumenter som er lagret i ArcGIS Online:
Mekanismen som er beskrevet over har delvis erstattet en annen metode for generell linking av relaterte dokumenter ved hjelp av en URL, som en måtte definere for eget miljø. Denne er fortsatt støttet, men vi har valgt å ikke dokumentere den 'gamle' framgangsmåten her, da vi ønsker å avdekke det reelle behovet for den, samt forbedre metode og beskrivelse hvis den fortsatt er nødvendig.