# GEOM2240 Vår 2023 Oblig 5 - Geografiske databaser ## Mål for oppgaven Oppgaven har til hensikt å innarbeide forståelse for geografiske databaser og spørringer mot slike databaser ved hjelp av GeoPandas og SQL. ## Bakgrunn Oppgaven bygger på [Ukeoppgave – Geografiske databaser](https://folk.ntnu.no/sverrsti/GEOM2240-V2023/ukeoppgave_databaser.html), og teori om geografiske databaser fra - Workshop - Introduction to PostGIS: [https://postgis.net/workshops/postgis-intro/](https://postgis.net/workshops/postgis-intro/) (Kapittel 1-14) ## Oppgaven Oppgaven består i å lage et Jupyter Notebook-dokument som utfører spørringene under "Del 3 Funksjoner for å teste romlige relasjoner" i ukeoppgaven om geografiske databaser. Hvordan slike spørringer kan utføres er gitt i løsningsforslag som er publisert på OneNote. Disse spørringene benytter seg av funksjoner som er spesifikke for PostGIS, og alle disse funksjonene har navn som begynner med ST_, f.eks. som i ST_CONTAINS(..). For alle slike funksjoner som brukes i løsningen skal du gi en forklaring på norsk som forklarer hva funksjonen gjør, og hva parametrene til funksjonen er. Disse beskrivelsene skal legges inn i egne Markdown-celler i dokumentet. ## Hva skal leveres - HTML-versjon av Jupyter Notebook-dokumentet (File/Save and Export Notebook As/HTML). ## Ressurser Eksempel på oppsett for spørring mot PostGIS-databaser: ```python # Geopandas-eksempel med lesing av kodetabell fra prodskog-databasen. # Merk at prodskog også er navnet på skjemaet som arealressursarealtype-tabellen ligger i. # Hvis tabellen det spørres mot ligger i public-skjemaet, trenger man ikke spesifisere skjema import pandas as pd import geopandas as gpd from sqlalchemy import create_engine, text from mypostgisdb import postgis_connection_string engine = create_engine(postgis_connection_string) query = 'SELECT * from prodskog.arealressursarealtype' with engine.begin() as conn: df = pd.read_sql_query(sql=text(query), con=conn) df ``` ```python # Innhold I mypostgisdb.py - postgres er brukernavn for databasen, prodskog er navnet på databasen postgis_connection_string = 'postgresql://postgres:passord@localhost:5432/prodskog' ``` ### PostGIS brukermanual - [Chapter 8. PostGIS Reference](https://postgis.net/docs/manual-3.2/reference.html) - [8.11.1. Topological Relationships](https://postgis.net/docs/manual-3.2/reference.html#idm11926) ## *NTNU 17.04.2023 Sverre Stikbakke*

¯\_(ツ)_/¯