Ich hoffe, dass meine Frage nicht lächerlich ist, da diese Frage (nach meinem besten Wissen) auf den populären Webseiten überraschenderweise noch nicht wirklich gestellt wurde.GeoDataFrame in SQL-Datenbank schreiben
Die Situation ist, dass ich mehrere CSV-Dateien mit insgesamt mehr als 1 Mio Beobachtungen habe. Jede Beobachtung enthält unter anderem eine Postanschrift. Ich plane, alle Dateien in einem einzigen GeoDataFrame zu lesen, die Adressen zu geocodieren, einen räumlichen Join bei einem Shapefile durchzuführen und einige Informationen aus dem Polygon für jede Zeile zu speichern. Ganz normal, nehme ich an. Dies ist ein Teil eines einmaligen Datenreinigungsprozesses.
Mein Ziel ist es, eine Datenbank mit diesem endgültigen Datensatz einzurichten. Dies ist, weil es mir erlaubt, die Daten ziemlich leicht zu teilen und zu durchsuchen, sowie z.B. Zeichnen Sie einige Beobachtungen auf einer Website. Es ist auch sehr einfach, Beobachtungen anhand einiger Kriterien auszuwählen und dann einige Analysen durchzuführen.
Mein Problem ist, dass die Funktion des Einfügens eines GeoDataFrame in eine Datenbank noch nicht implementiert zu sein scheint - offenbar weil GeoPandas ein Ersatz für Datenbanken sein soll ("GeoPandas ermöglicht Ihnen einfach Operationen in Python zu machen, die sonst benötigt würden eine räumliche Datenbank wie PostGIS ").
Natürlich könnte ich jede Zeile durchlaufen und jeden Datenpunkt "manuell" einfügen, aber ich suche hier nach der besten Lösung. Bei jeder Problemumgehung hätte ich auch Angst, dass der Datentyp mit dem der Datenbank in Konflikt geraten könnte. Gibt es "einen besten Weg", hier zu nehmen?
Danke für Ihre Hilfe.
Cool! Dies funktioniert beim ersten Aufruf, wenn die Tabelle nicht existiert. Aber aufeinanderfolgende Aufrufe geben mir eine 'DataError: (psycopg2.DataError) Geometrie SRID (0) stimmt nicht überein Spalte SRID (4326)'. – j08lue
'psycopg-postgis' könnte etwas Inspiration haben: https://github.com/yohanboniface/psycopg-postgis. Sie implementieren jedoch ihre eigenen Typen und nicht die in "formschönen"/"Geopandas". – j08lue
Dieses ** kann ** für einen einzelnen Aufruf, nicht für das Anhängen von Daten funktionieren, da die Spalte "geom" dann erwartet, dass die Geometrie über eine SRID verfügt. – j08lue