sql >> データベース >  >> RDS >> Mysql

GeoDataFrameをSQLデータベースに書き込みます

    前述のように、@ Kartikの回答は、1回の呼び出しでのみ機能します。データを追加すると、DataErrorが発生します。 geom以降 次に、列はジオメトリにSRIDがあることを期待します。 GeoAlchemyを使用できます すべてのケースを処理するには:

    # Imports
    from geoalchemy2 import Geometry, WKTElement
    from sqlalchemy import *
    
    # Use GeoAlchemy's WKTElement to create a geom with SRID
    def create_wkt_element(geom):
        return WKTElement(geom.wkt, srid = <your_SRID>)
    
    geodataframe['geom'] = geodataframe['geom'].apply(create_wkt_element)
    
    db_url = 'postgresql://username:[email protected]:socket/database'
    engine = create_engine(db_url, echo=False)
    
    # Use 'dtype' to specify column's type
    # For the geom column, we will use GeoAlchemy's type 'Geometry'
    your_geodataframe.to_sql(table_name, engine, if_exists='append', index=False, 
                             dtype={'geom': Geometry('POINT', srid= <your_srid>)})
    


    1. サーバーにファイルを安全に保存する方法

    2. MySQLで重複する行を削除する

    3. Java.lang.IllegalStateException:すでに添付されています

    4. DBAのポジションを引き継ぐときに尋ねる3つのSQLServerモニタリングの質問