# 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*
¯\_(ツ)_/¯