前提・実現したいこと
Shapeファイルの属性の型を修正したい。
想定している修正内容
・実数型の小数点以下桁数の変更
・文字列型の桁数の変更
・列順序の変更
該当のソースコード
python
1# -*- coding: utf-8 -*- 2import fiona 3import geopandas as gpd 4from shapely import speedups 5speedups.disable() 6path_in=r"C:\work\shape\1\poly.shp" 7path_out=r"C:\work\shape\2\poly.shp" 8data_frame = gpd.read_file(path_in) 9with fiona.open(path_in) as source: 10 data_frame.to_file(path_out, schema=source.schema)
発生している問題・エラーメッセージ
上述のようなコードにおいてsource.schemaを変更することで
想定している修正内容は行えています。
ただ、dbfファイルだけではなく、shpファイル、shxファイルも
バイナリ比較すると内容が変わってしまう場合があります。
特に問題ないのかもしれませんが、不安なので
以下の方法を選択しようと考えています。
試したこと
dbfファイルのみを別フォルダに配置し、このdbfファイルのみを対象として
上記のコードを実行
この変更したdbfファイルと、dbfファイル以外の元のShapeファイルを合わせて
一つのShapeファイルとする。
⇒QGIS、Arcmapで見た所、問題なさそうに見える。
ですが、この対処は問題ないでしょうか。
これを読むとshxファイルとshpファイルはペアでないといけないけど
dbfファイルは順番が変わらなければ大丈夫なの…でしょうか。
補足情報(FW/ツールのバージョンなど)
Python 3.9.2
geopandas 0.9.0
追記
試したことの例で「dbfファイルのみを別フォルダに配置」と記載しましたが
dbfファイルだけ読み込むと、全ての行を読み込んでくれない場合があったため
読み込むのは、shpファイルを読み込むように変更し
作成したdbfファイルと、dbfファイル以外の元のShapeファイルを合わせて
一つのShapeファイルとする。という内容に修正しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。