Answers:
也许最简单的方法是使用QGIS及其分隔的文本插件之类的东西来导入然后导出数据。如果您正在寻找命令行和可扩展的工具,那么Sasa提到的VRT方法就是一个不错的选择。
您还可以使用以下命令对文件输入和输出进行操作gdaltransform
:
gdaltransform -s_srs epsg:4326 -t_srs epsg:25832 < space-delimited-coordinates.txt
ogr2ogr应该能够处理此问题(您可以下载FWTools进行快速安装)。
该线程说明了如何重新投影CSV数据。总而言之,您需要创建一个VRT文件,其中包含对CSV列的引用:
<OGRVRTDataSource>
<OGRVRTLayer name="test">
<SrcDataSource>test.csv</SrcDataSource>
<GeometryType>wkbPoint</GeometryType>
<GeometryField encoding="PointFromColumns" x="RW" y="HW"/>
</OGRVRTLayer>
</OGRVRTDataSource>
然后运行ogr2ogr进行重新投影:
ogr2ogr -s_srs "epsg:31466" -t_srs "epsg:25832" -f "CSV" -lco GEOMETRY=AS_XY -sql "SELECT PNR FROM test" temp_dir test.vrt
您需要使用适用于您的UTM坐标系的EPSG代码替换epsg:31466。
有工作在电子表格和其他源代码(Fortran语言,C ++等)http://www.gpsy.com/gpsinfo/geotoutm/ 大资源,1996年(和仍然有效)!
我们有一个商业(但价格合理)的独立桌面应用程序,可让您批量转换坐标。有关更多信息,请访问:http : //geomaticsolutions.com/products/geo-suite/geo-calc
您还可以使用我们的免费在线服务来执行单点转换。 http://georepository.com/home.html
据我了解,您不想简单地重新投影文件,而是想要自己转换坐标并拥有一个带有新坐标的新文件。如果您将Google“将经/纬度转换为utm”,则应该找到可以进行此转换的excel电子表格(例如,在威斯康星大学绿湾分校或上述回答者中)。或者,您可以购买AllTrans或Franson Coordtrans之类的软件,这些软件可以在许多不同的坐标系之间进行批量转换。
或者,较简单但更具教育意义的是,学习gdal或FWTools的语法。
对于脚本解决方案,可以使用pyproj:
import sys
import csv
import pyproj
# example invocation
# ./reproj.py ./file.csv 32619 4326
if (len(sys.argv) != 4):
print '%s <csvfile> <epsg_code_in> <epsg_code_out>' % sys.argv[0]
sys.exit(1)
else:
p1 = pyproj.Proj(init='epsg:%s' % sys.argv[2])
p2 = pyproj.Proj(init='epsg:%s' % sys.argv[3])
f = open(sys.argv[1], 'r')
table = csv.reader(f)
for row in table:
print '%s %s' % (row[1], row[2])
newxy = pyproj.transform(p1, p2, row[1], row[2])
print '%s %s' % (row[0], newxy[0], newxy[1])
f.close()
我不会寻求ARC解决方案。对于这些常见的转换,有许多在线工具,例如http://www.hamstermap.com-只需复制并粘贴坐标列表,您便会立即将其转换。