Python: Coordinate transformation

6 06 2012

20120606 แปลงระบบพิกัดด้วยไพธอน

เราสามารถแปลงระบบพิกัดได้ง่ายๆ ด้วยภาษาไพธอน โดยใช้ไลบราลี่ pyproj (ต้องติดตั้งเพิ่ม) สามารถดาวน์โหลดได้จาก http://code.google.com/p/pyproj/downloads/list

โค้ดตัวอย่างง่ายๆ ดังนี้

# Coordinate transformation with Python

import pyproj

def utm2latlon(E,N):
“”” convert UTM zone 47N coordinate(E,N) to geographic coordinate (longitude, latitude)
“””
source = pyproj.Proj(init=’epsg:32647′)
target = pyproj.Proj(init=’epsg:4326′)
lon,lat= pyproj.transform(source,target,E,N)
return(lon,lat)

def latlon2utm(lon,lat):
“”” convert geographic coordinate (longitude, latitude) to UTM zone 47N coordinate (E, N)
“””
source = pyproj.Proj(init=’epsg:4326′)
target = pyproj.Proj(init=’epsg:32647′)
E, N = pyproj.transform(source,target,lon,lat)
return(E,N)

ทำเป็นฟังก์ชั่นไว้ใช้งานเลย
เวลาใช้ก็เรียก

E,N = latlon2utm(99.50,13.50)
print E,N

ได้คำตอบ 554110.700706 1492485.03222

เงื่อนไขในการแปลงระบบพิกัดอยู่ที่ Spatial Reference System ; SRS
ดังตัวอย่าง pyproj.Proj(init=’epsg:4326′)

epsg:4326 เป็น SRS ของ EPSG เลข 4326 เป็นรหัสของระบบพิกัดภูมิศาสตร์ (ละติจูด, ลองกิจูด)

ตัวเลขที่บ้านเราใช้บ่อยๆ ก็มี
4326    ระบบพิกัดภูมิศาสตร์ บนพื้นหลักฐาน WGS84
4240    ระบบพิกัดภูมิศาสตร์ บนพื้นหลักฐาน Indian 1975
32647  ระบบพิกัดยูทีเอ็มโซน 47 บนพื้นหลักฐาน WGS84
32648  ระบบพิกัดยูทีเอ็มโซน 48 บนพื้นหลักฐาน WGS84
24047  ระบบพิกัดยูทีเอ็มโซน 47 บนพื้นหลักฐาน Indian 1975
24048  ระบบพิกัดยูทีเอ็มโซน 48 บนพื้นหลักฐาน Indian 1975


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: