Coordinate Systems and Axis Orientation ใน WMS 1.3.0

Standard

ก็ได้กล่าวไปบ้างแล้วสำหรับ การเปลี่ยนแปลงของ ระบบอ้างอิง x,y ใน WMS 1.3.0

ก็มาพูดถึงโดยละเอียดอีกทีว่าเป็นอย่างไร

  • โดยทั่วไปใน WMS 1.xx ส่วนใหญ่ทุกคนจะใช้ EPSG:4326 สำหรับ WGS84 lon/lat ในลักษณะนี้กันBBOX=-180.0,-90.0,180.0,90.0&…
  • แต่ใน WMS 1.3.0 นั้น EPSG:4326 เปลี่ยนแปลงไปเป็น WGS84 lat/lon โดยกำหนดพิกัดแบบ &BBOX=-90.0,-180.0,90,180.0

นั้นจึงเป็นปัญหาที่พบกันอยู่ซึ่งส่วนใหญ่เท่าที่เจอคือ EPSG ที่ใช้พิกัดแบบ longitude latitude  ส่วนใหญ่ใน WMS 1.3.0 จะเปลี่ยนเป็นแบบ lat/lon

  • แต่ใน WMS1.3.0 ก็ได้กำหนดระบบอ้างอิงมาเป็น CRS:84 ซึ่งจริง ๆ แล้วก็คือ EPSG:4326 ใน WMS 1.x.x เพราะเป็นระบบพิกัดแบบ WGS84 lon/lat นั้นเอง

แต่ก็ไม่มั่นใจว่า ระบบ EPSG ทั้งหมดจะเปลี่ยนจาก lon/lat  เป็น lat/lon ทั้งหมดหรือไม่ก็ต้องหาข้อมูลเพิ่มเติมอีกครั้งนึง

กลเม็ดต่างๆของ GDAL

Standard

หลายครั้งที่ท่านต้องการเปิดไฟล์ แปลงไฟล์ อ่านข้อมูลของไฟล์ Raster วันนี้เรามาเสนอ วิธีง่าย ๆ ที่ทำได้ด้วย command ของ gdal นะครับ

1. ดู metadata ของ Raster file

gdalinfo 20041117/20041117B1.tif

2. ทำการแปลงไฟล์จากชนิดหนึ่งไปเป็นอีกชนิดหนึ่ง ในแบบ simple โดยใช้ parameter เพิ่มเติมได้มากกว่านี้

gdal_translate -of GTiff 20030919/20030919B1 output.tif

3. ทำการแปลงไฟล์ด้วยคำสั่ง gdal_wrap (ตย. เป็นการแตกไฟล์ของ HDF4)

gdalwarp -of ENVI -ot Byte HDF4_EOS:EOS_SWATH:”prdat014.dat”:VNIR_Swath:ImageData3N /home/art/aster/2004111702/2004111702B3N

4. ทำการสร้าง composite ไฟล์ โดยการรวมหลาย ๆ Band

gdal_merge.py -o stack.tif -separate a.tif b.tif c.tif

หลายละเอียดของ option ดูได้จากที่นี่ gdal

เพิ่มเติมจาก blog ของ Markus http://gfoss.blogspot.com/2008/06/gdal-raster-data-tips-and-tricks.html

ว่าด้วยเรื่องของ Projection

Standard

วันนี้มากล่าวคร่าวกับเรื่องของ projection code กันเล็กน้อย

ตอนนี้มีหลายมาตรฐานมาก ๆ เลย
แต่โดยส่วนใหญ่ที่เราจะพบเจอ ก็เป็น ของ PROJ4 EPSG ซึ่งตอนนี้ก็มีของ QGIS และ PostGIS

โดยของ Postgis ส่วนใหญ่จะตรงกันกับของ PROJ 4 แต่ก็มีแตกต่างบ้างบางครั้ง

ก่อนต้องเป็นสองพวกตามหน่่วยอะนะครับ คือ Decimal Degree และ Meters

โดยในญี่ปุ่นส่วนใหญ่ที่เราจะเจอก็คือเป็นแบบ Decimal Degree

# JGD2000
<4612> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <>

และ
# WGS 84
<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs no_defs <>

ซึ่งแบบหลังเนี่ยจะเป็นแบบ Long Lat ที่ใช้ Datum เป็น WGS84 ซึ่งมีหลายประเทศก็ใช้กันอยู่

แต่หากเจอข้อมูลเก่า ๆในญี่ปุ่นก็จะมีการใช้ Tokyo datum นะครับซึ่งคือ

# Tokyo / Japan Plane Rectangular CS V
<30165> +proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <>

# Tokyo
<4301> +proj=longlat +ellps=bessel +no_defs no_defs <>

JGD2000 จะใช้ GRS80 สำหรับ ellipsoid และ Tokyo Datum จะใช้ Bessel ellipsoid ซึ่งมีผลทำให้เกิดความคลาดเคลื่อนกันประมาณ 400 – 500 m.
อีกหน่วยก็คือ Meters

ซึ่งจะมีการแบ่งออกเป็นประมาณ 13 zone ก็ต้องดูว่าข้อมูลอยู่ใน zone ไหน

# JGD2000 / Japan Plane Rectangular CS V
<2447> +proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <>

และ เทคนิคการนำข้อมูล shp เข้า PostGIS DB นั้นก็ใช้คำสั่งอย่างนี้นะครับ

(shp2pgsql -s 4326 airports.shp
-f output.sql)

หากไม่เช่นนั้นข้อมูลใน column SRID จะมีค่า = -1

สำหรับข้อมูลคราวนี้อ้างอิงจาก web นี้นะครับ

ท้ายนี้ขอแถมของไทยด้วยแล้วกันนะ
#WGS84/ UTM Zone 47
<32647>+proj=utm +zone=47 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
#WGS84/ UTM Zone 48
<32648>+proj=utm +zone=48 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
#Indian 1975/UTM Zone 47
<24047>+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs
#Indian 1975/UTM Zone 48
<24048>+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs

ถ้าเป็น latlong ส่วนใหญ่ก็เหมือนกับ ข้างบนคือ

# WGS 84 LongLat
<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs no_defs <>

สำหรับข้อมูลเก่า ๆ หน่อยอาจจะเจออันนี้บ้าง

#Indian 1954/UTM Zone 47
<23947>+proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs
#Indian 1954/UTM Zone 48
<23947>+proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs
#Indian 1975/ LongLat
<4240>+proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs