5

プログラムでESRIシェープファイルに変換したいExcelスプレッドシートがあります。2つの列にX座標とY座標が含まれ、他の列にはさまざまな属性データが含まれています。スプレッドシートはExcel97形式です(つまり、.xlsxではありません)。

これをポイントジオメトリシェープファイルに変換できるようにしたいと思います。各行のx、yペアはポイントを表します。理想的には、x、y座標ペアの座標系を指定する3番目の列があり、Excelファイルに異種の座標系が含まれている必要があります。

このExcelスプレッドシート(​​.xls)をプログラムでシェープファイルに変換するにはどうすればよいですか?できればPythonで。ただし、他の実装も受け入れられます。

4

5 に答える 5

5

このようなもの?

import xlrd
book = xlrd_open_workbook("data.xls") 
sheet = book.sheet_by_index(0)  
data = [] #make a data store
for i in xrange(sheet.nrows):
  row = sheet.row_values(i)
  x=row[0]
  y=row[1]
  data.append(x,y)

import point_store
point_store.save('points-shifted.shp', [data], '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')
于 2010-07-05T08:06:34.833 に答える
4

GDAL を使用してシェープファイルを作成するための Python チュートリアルがここにあります。

http://invisibleroads.com/tutorials/gdal-shapefile-points-save.html

ソース データを Excel ファイルのポイントに置き換えるだけで済みます。Fabian が指摘したように、Excel ファイルを読み取る (または DBF として保存する) ライブラリがあります。

または、ESRI の ArcMap を使用している場合は、Excel を DBF ファイルとして保存し (ArcMap が Excel を直接読み取るかどうかは覚えていません)、X、Y フィールドを使用してこの DBF を「イベント レイヤー」として追加し、ポイントを表します。ArcMap はこれらをフィーチャとして表示し、右クリックしてレイヤーをシェープファイルにエクスポートできます。

于 2010-07-05T07:57:56.407 に答える
2

xlrdは Excel ファイルを読み込むための python モジュールです。

于 2010-07-05T07:52:09.690 に答える
1

GDAL / OGRライブラリでPythonを使用してこれを実行することをお勧めします。これらをインストールした後は、http://nautilus.baruch.sc.edu/twiki_dmcc/bin/view/で説明されているようにogr2ogrユーティリティを使用する方が簡単ですMain / OGR_example#Converting_from_CSV_to_shapefile

于 2010-07-05T09:07:43.900 に答える