Viser bruk av PostGIS ST_INTERSECTS og ST_INTERSECTION se 8.11. Spatial Relationships og 8.13. Overlay Functions
Brukernavn og passord til databasen, samt vertsnavn (host), portnummer og databasenavn legges i en egen fil, mypostgisdb.py, slik:
postgis_connection_string = "postgresql://brukernavn:passord@host:5432/databasenavn"
import pandas as pd
import geopandas as gpd
import fiona as fi
from sqlalchemy import create_engine
from mypostgisdb import postgis_connection_string
db = create_engine(postgis_connection_string)
ledning_gdb = "Basisdata_1133_Hjelmeland_5972_FKB-Ledning_FGDB.gdb"
print(fi.listlayers(ledning_gdb))
ledning = gpd.read_file(ledning_gdb, layer = 'fkb_ledning_beliggenhet')
ledning.plot( figsize=(15,15))
#ledning.to_postgis('ledning', db)
# Disse variablene brukes i spørringer med gpd.read_postgis()
geom_col = 'geometry'
crs = 'EPSG:25832'
sql = 'SELECT treslag, skogbonitet, geometry from prodskog.arealressursflate, public.ledning where ST_INTERSECTS(ledning.geometry, prodskog.arealressursflate.omraade)'
ledning_skog_intersection = gpd.read_postgis(sql, db, geom_col, crs)
ledning_skog_intersection
ledning_skog_intersection.plot( figsize=(15,15))
ledning_skog_intersection
sql = 'SELECT treslag, skogbonitet, ST_INTERSECTION(geometry, omraade) as geometry from prodskog.arealressursflate, public.ledning where ST_INTERSECTS(ledning.geometry, prodskog.arealressursflate.omraade)'
ledning_skog = gpd.read_postgis(sql, db, geom_col, crs)
base = ledning.plot(color='cyan', figsize=(15,15))
ledning_skog.plot(ax=base, color='red');