回答:
GDALライブラリの一部であるOGR / GDALの使用をお勧めします。OGRは、XMLファイルを介した指定を可能にする仮想形式をサポートしています。ExcelワークシートをCSVに変換すると、VRTを生成してデータにアクセスできます。
次のようなものがあると仮定しますexample.csv
。
Lat,Long,Year,Name
34.0,-120.0,2010-05-01,Off Santa Rosa Island
example.vrt
次のようにVRT を作成できます。
<OGRVRTDataSource>
<OGRVRTLayer name="example">
<SrcDataSource>example.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="Long" y="Lat"/>
</OGRVRTLayer>
</OGRVRTDataSource>
GDAL 1.7以降で<Field>
は<OGRVRTLayer>
、の内部の要素を使用して、次のように属性フィールドのデータ型をさらに指定できます。
<Field name="date" src="Year" type="Date" />
シェープファイルは、Excelよりもデータ型の柔軟性が低いDBASE IV形式で属性を保存することに注意してください。VRTファイルを指定したら、通常のOGRツールチェーンを使用してデータをシェープファイルに変換できます。
ogr2ogr -f "ESRI Shapefile" example.shp example.vrt
残念ながら、#4は不可能です—シェープファイルの仕様では、単一の投影が許可されています(example.prj
最後のステップの後に表示されます)。
<Field>
タグを記述するために、プログラムで列のデータ型を把握する必要があることです。私は自分でそれを理解するだろうと思う:)
QGIS (http://qgis.org)に付属のDelimited Textプラグインを使用して、テキストファイルをロードし、シェープファイルとして保存できます。
WebヘルプでXYデータの表示に関するヘルプページを探しましたが見つかりませんでしたが、プロセスは簡単です。
これを行うには、ArcGIS(for)DesktopのArcView(Basic)ライセンスレベルのみが必要です。
常に冒険的なオプションがあります。シェイプファイルを自分で作成できます。ESRIは、シェープファイルの仕様を公開しています。これについては、こちらをご覧ください。
http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
また、DBFファイルを作成する必要があります。ここでフォーマットについて読むことができます:
http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT
これは間違いなくやり過ぎですが、プロセス全体を制御できるという利点があります。
x、yデータに対して他の処理を行いたい場合は、データをpostgresにロードし、連結してgeomfromtextを使用してジオメトリデータタイプを作成し、pgsql2shpを使用して形状にエクスポートできます。このアプローチでは、異機種空間参照システムのデータを別の列に保持することもできます。このデータを使用して、シェープにエクスポートする前に、db内のすべてのポイントを共通参照システムに変換できます。これには、ogr / gdalよりも多くのステップが含まれることがわかりますが、柔軟性が大幅に向上します。
CSVファイルをspatialliteにロードし、OGRまたはQGISを使用してシェープファイルにエクスポートすることについてはどうですか。
http://www.gaia-gis.it/spatialite-2.2/index.html
spatialiteからシェープファイルに直接エクスポートすることもできます。
http://www.gaia-gis.it/spatialite-2.2/spatialite-2.2_tutorial.html#t3.1