土木関係に関わる生物調査だと、地図はCADデータで作られていて、それを使う必要があります。
高価なCADソフトやGISソフトがあれば、CADデータをそのまま読み込んで、ラスタデータに変換できます。
それをタダで、もしくはフリーで、さもなければ無料でできないか?ということで調べました。
結論は、地図の線は変換できるけど、テキストラベルは変換できなませんでした。以下、その方法です。
フリーな方法(テキストラベルは変換できない)
以下、OSGeo4Wからgdal 1.8preをインストールして利用します。
1.dxfファイルをmapinfoファイルに変換します。
ogr2ogr -f "MapInfo File" -a_srs epsg:2452 -spat 28000 -180000 31000 -177000 -sql "select * from entities where OGR_GEOMETRY != 'POLYGON'" out map.dxf
- dxfファイルには、ポイント、ラインが混ざっているので、そのまま扱えるMapInfoに変換します。shpファイルでも、ポイント、ラインを別々に管理すればよいと思うかもしれませんが、dxfにはGEOMETRYCOLLECTION(複合パスのようなもの?)というのがあって、それがshpでは扱えないので、だめです。
- a_srsで投影法を指定します。
- spatで余分な範囲をなくします。
- sqlで必要なオブジェクトだけ取り出します。
2.MapInfoからラスターに変換します。
gdal_rasterize -init 255 -burn 0 -tr 1 1 -l entities -ot Byte out map.tif
dxfから直接gdal_rasterizeすれば良いように思いますが、現在のところエラー(バグ?)でできません。
有料な方法
以下の、ソフトを使えば変換できます。多分。
- AutoCAD Raster Design を使う。http://www.autodesk.co.jp/adsk/servlet/index?siteID=1169823&id=12615565
- ArcGISを使う。
- Adobe Acrobat 9 Pro Extendedを使う。Geospatial PDFを作成できる。 http://www.adobe.com/jp/products/acrobatproextended/
自分用メモ
dxfからポイント、ライン、ポリゴンを分けてshpに変換する方法
ogrinfo Yoshida01.dxf -sql "select DISTINCT OGR_GEOMETRY from entities" ogr2ogr point.shp Yoshida01.dxf -sql "select * from entities where OGR_GEOMETRY = 'POINT'" ogr2ogr line.shp Yoshida01.dxf -sql "select * from entities where OGR_GEOMETRY = 'LINESTRING'" ogr2ogr polygon.shp Yoshida01.dxf -sql "select * from entities where OGR_GEOMETRY = 'POLYGON'"