Надеюсь, что мой вопрос не смешон, так как, на удивление, этот вопрос, по-видимому, пока еще не был задан (насколько мне известно) на популярных веб-сайтах.Напишите GeoDataFrame в базу данных SQL
Ситуация в том, что у меня есть несколько файлов csv, содержащих в общей сложности более 1 наблюдения Mio. Каждое наблюдение содержит, в частности, почтовый адрес. Я планирую читать все файлы в один GeoDataFrame, геокодировать адреса, выполнять пространственное соединение, задавая шейп-файл, и сохранять некоторую информацию из многоугольника для каждой строки. Довольно стандартный, я полагаю. Это часть одноразового процесса очистки данных.
Моя цель - создать базу данных с этим окончательным набором данных. Это связано с тем, что он позволяет мне легко и просто делиться и искать данные, а также, например, запечатлеть некоторые наблюдения на веб-сайте. Кроме того, довольно легко выбрать наблюдения, основанные на некоторых критериях, а затем выполнить некоторые анализы.
Проблема заключается в том, что функция вставки GeoDataFrame в базу данных, похоже, еще не реализована - по-видимому, потому, что GeoPandas должна быть базой для баз данных («GeoPandas позволяет вам легко выполнять операции на питоне, которые в противном случае требовали бы пространственная база данных, такая как PostGIS ").
Конечно, я мог проходить через каждую строку и вставлять каждую точку данных «вручную», но я ищу лучшее решение здесь. Для любого обходного пути я также опасаюсь, что тип данных может конфликтовать с типом базы данных. Есть ли «лучший способ» здесь?
Благодарим за помощь.
Прохладный! Это работает при первом вызове, когда таблица не существует. Но последовательные вызовы дают мне 'DataError: (psycopg2.DataError) Geometry SRID (0) не соответствует столбцу SRID (4326)'. – j08lue
'psycopg-postgis' может иметь некоторое вдохновение: https://github.com/yohanboniface/psycopg-postgis. Тем не менее, они реализуют свои собственные типы, а не в «стройном»/«геоданном». – j08lue
Этот ** может ** использовать для одного вызова, а не для добавления данных, так как столбец 'geom' ожидает, что геометрия будет иметь SRID. – j08lue