ฉันมีไฟล์. csv ที่มีรายการละติจูดและลองติจูด มีวิธีที่มีประสิทธิภาพในการแปลงรายการเป็นระบบพิกัด UTM ที่คาดการณ์ไว้หรือไม่?
ฉันมีไฟล์. csv ที่มีรายการละติจูดและลองติจูด มีวิธีที่มีประสิทธิภาพในการแปลงรายการเป็นระบบพิกัด UTM ที่คาดการณ์ไว้หรือไม่?
คำตอบ:
บางทีวิธีที่ง่ายที่สุดคือการใช้บางสิ่งบางอย่างเช่นQGIS และปลั๊กอินข้อความแบบมีตัวคั่นเพื่อนำเข้าและส่งออกข้อมูล หากคุณกำลังมองหาบรรทัดคำสั่งและปรับขนาดได้แล้วแนวทาง VRT ที่ Sasa กล่าวถึงนั้นเป็นสิ่งที่ดี
คุณสามารถทำได้ด้วยอินพุตไฟล์และเอาท์พุตโดยใช้gdaltransform
:
gdaltransform -s_srs epsg:4326 -t_srs epsg:25832 < space-delimited-coordinates.txt
และหากคุณต้องการการเข้าถึงผลลัพธ์เพิ่มเติมโดยทางโปรแกรมตรวจสอบคำตอบของ geographika โดยใช้ pyrojสำหรับคำถามที่เกี่ยวข้อง
ด้วย arcmap
เพิ่ม csv และใช้ lat longs เพื่อสร้างตารางเหตุการณ์ (เลเยอร์คลิกขวา> "แสดงข้อมูล XY")
สิ่งนี้สร้างเลเยอร์เหตุการณ์ที่มีตารางและเลเยอร์จุด (ไม่ใช่เลเยอร์จุดจริงต้องส่งออกในภายหลัง)
ตั้งค่าการฉายเอกสาร (คุณสมบัติเฟรมข้อมูล) เป็นผลลัพธ์ที่ต้องการของไฟล์ (คลิกขวาเลเยอร์ "ใน TOC"> Properties> แท็บประสานงานระบบ)
คลิกขวาที่เลเยอร์ใน TOC> ส่งออกข้อมูล
ใช้ตัวเลือกเพื่อ "ใช้ระบบพิกัดเดียวกันกับ: data frame"
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
คุณจะต้องแทนที่ epsg: 31466 ด้วยรหัส EPSG ที่เหมาะสมสำหรับระบบพิกัด UTM ของคุณ
Corpsconซึ่งเป็นเครื่องมือฟรีจาก US Army Corps of Engineers จะช่วยให้คุณสามารถแปลงชุด lat / long เป็น / จาก UTM โปรดทราบว่าจะมีข้อ จำกัด ไปยังประเทศสหรัฐอเมริกาและอาจทำงานในประเทศแคนาดา
มีสเปรดชีตที่ใช้งานได้และซอร์สโค้ดอื่น ๆ (Fortran, C ++ ฯลฯ ) ที่http://www.gpsy.com/gpsinfo/geotoutm/ แหล่งข้อมูลที่ยอดเยี่ยมสำหรับปี 1996 (และยังใช้งานได้)!
เรามีแอปพลิเคชั่นเดสก์ท็อปแบบสแตนด์อโลนในเชิงพาณิชย์ (แต่ราคาไม่แพง) ที่จะช่วยให้คุณสามารถแปลงชุดพิกัดของคุณ ข้อมูลเพิ่มเติมสามารถดูได้ที่: http://geomaticsolutions.com/products/geo-suite/geo-calc
คุณยังสามารถใช้บริการออนไลน์ฟรีของเราเพื่อทำการแปลงจุดเดียว http://georepository.com/home.html
ตามที่ฉันเข้าใจแล้วคุณไม่ต้องการปฏิเสธไฟล์เพียงอย่างเดียวคุณต้องการแปลงพิกัดเองและมีไฟล์ใหม่ด้วยพิกัดใหม่ หากคุณ Google "แปลง lat / lon เป็น utm" คุณควรพบสเปรดชีต excel ที่จะทำการแปลงนี้ (เช่นที่ University of Wisconsin Green Bayหรือในคำตอบของผู้ขายด้านบน) หรือคุณสามารถซื้อซอฟต์แวร์เช่น 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()
ไซต์ใหม่ต่อไปนี้แปลงไฟล์ออนไลน์ (ใช้ pyproj)
นอกจากนี้ยังสร้าง KML และไฟล์อินพุตมักจะถูกปล่อยไว้ 'ตามสภาพ' และไม่ได้จัดรูปแบบใหม่เพื่อให้เหมาะกับโปรแกรมแปลง
Sorry i cant post a numeric domain so have to wrap it in a code block!
http://54.251.49.75/XYZ_tools
โปรดตัดและวางลิงก์เพื่อติดตาม
ฉันจะไม่ไปแก้ปัญหา ARC; สำหรับการแปลงทั่วไปเหล่านี้มีเครื่องมือออนไลน์มากมายเช่นhttp://www.hamstermap.com - เพียงแค่คัดลอกและวางรายการพิกัดแล้วคุณจะได้รับการแปลงทันที