我在PostGIS中有一个表,它有大约400万条记录。现在,我正试图在python脚本中获取所有这些记录。为此,我使用了以下代码片段:
代码段
import pandas.io.sql as psql
import psycopg2
from shapely import wkt
import geopandas
query = "SELECT id, ST_AsText(geom) as geometry FROM <table>"
def postgresql_conn(user, postgres_password, host, port, database):
connection = psycopg2.connect(user=user, password=postgres_password, host=host, port=port, database=database)
return connection
conn = postgresql_conn(user, postgres_password, host, port, postgresql_database)
df = psql.read_sql(query, conn)
print(df.dtypes)
当我看到输出时
几何柱
是一个
对象数据类型
而不是
几何数据类型
。这是因为它是字符串格式的。但是,我该怎么进去
几何数据类型
在从数据库本身获取数据时?
我试着把它转换成
几何数据类型
从数据库中提取后使用以下命令:
代码段
df['geometry'] = geopandas.GeoSeries.from_wkt(df['geometry'])
df= geopandas.GeoDataFrame(df, geometry='geometry')
它正在采取
一个多小时
只是将400万条记录转换为
几何数据类型
使用上面的代码行。
是否有一种方法可以在查询自身时以几何数据类型获取它,从而花费更少的时间?如果没有,那么在我从数据库中提取400万条记录后,有没有一种方法可以在很短的时间内转换它?
任何帮助都将不胜感激!
谢谢!