16

I recently started using Geopandas in python for some of my spatial work and am very pleased with it - I'm currently trying to read in PostGIS features and don't quite understand how to parameterize the database connection, and it didn't seem clear in the documentation:

GeoDataFrame.from_postgis(sql, con, geom_col='geom', crs=None, index_col=None, 
    coerce_float=True, params=None)

This is likely a very simple question, all I wanted to know is what needs to go in 'con' - I assume a string with database connection information? But in what format? Setting 'sql' seems straightforward. Any help greatly appreciated - thanks!

Brian Burns
  • 17,878
  • 8
  • 77
  • 67
mweber
  • 677
  • 1
  • 6
  • 16

1 Answers1

41

Example:

import geopandas as gpd

import psycopg2  # (if it is postgres/postgis)

con = psycopg2.connect(database="your database", user="user", password="password",
    host="your host")

sql = "select geom, x,y,z from your_table"

df = gpd.GeoDataFrame.from_postgis(sql, con, geom_col='geom' )
Brian Burns
  • 17,878
  • 8
  • 77
  • 67
Catalin
  • 581
  • 6
  • 5
  • 4
    `psycopg2` is specific to postgres, `sqlalchemy.create_engine()` is generic and can handle connections to most DBMS – Hugh_Kelley Jul 29 '19 at 09:41