GeoPandas

GeoPandas คือ lib ที่ทำงานด้านการประมวลผลข้อมูล Geospatial data โดยตัวมันเองทำหน้าที่จัดการข้อมูลประเภท geometry data type ซึ่ง Feature พวกนี้จะเชื่อมกับข้อมูลเชิงบรรยายประกอบต่างๆ ข้อดีของ GeoPandas สามารถประมวลผลข้อมูล Geometry ได้ทำให้มีความสามารถรองรับการทำ Geo processing เช่นการสร้าง buffer , intersection feature, Merge, Union , รวมถึงการคำนวณบน  geometry data การหาระยะ หาพื้นที่ การจัดการเรื่อง Coordinate reference system และอื่นๆ โดยข้อมูลจัดการในรูปแบบของ Data frame ที่รองรับการวิเคราะห์และประมวลผลข้อมูล ด้วย PANDAS บนภาษา Python ได้ ซึ่งตรงนี้มันสะดวกและมีประโยชน์มาก กรณีเราต้องการเก็บหรือทำงานกับ geometric object ที่มีความซับซ้อน มากกว่า จุดพิกัด lat , lon

 

Panda-2-sm (1)

มีโอกาสได้ลองใช้งาน GeoPandas เพื่อเชื่อมต่อข้อมูลสำหรับนำมาเทรนตัว Deep Learning ใช้งานสักระยะรู้สึกว่า มันสะดวกและมีประโยชน์ดี เลยจะมาเขียน tutorial แนะนำให้ ได้ลองใช้งานกัน

1. Installation

การติดตั้งไม่ยาก ผมใช้ pyton 2.7 การลงก็ทำผ่าน pip ได้เลย โดย lib หลักๆที่ Geopandas ใช้คือ shapely , fiona ,pyproj พวกนี้นำ source มาใช้ก็ complie ก่อนแล้วติดตั้งก็จะไม่มีปัญหาอะไร

pip install geopandas

 

2. Set up packages

9-11-2017 7-22-52 PM

3. การสร้าง geometry object ด้วย GeoSeries 

ตัวอย่าง ใช้ GeoSeries ในการสร้าง point geometry จาก WKT ที่ระบุข้อมูลตำแหน่งของ 2 จุด
ดำเนินการกำหนดระบบพิกัดอ้างอิงเริ่มต้น แบบ EPSG 4326

9-11-2017 7-34-54 PM

 

ทดสอบผลลัพธ์ด้วยการ plot ตำแหน่งพิกัดบนแผนที่

9-11-2017 7-35-19 PM

4. GeoDataframe
– เริ่มจากเตรียมข้อมูลจุดพิกัด และ attribute บน pandas dataframe

9-11-2017 7-43-36 PM

จากนั้นทำการ build ตัว Geometry  Feature ผ่าน GeoDataFrame และทดลอง plot ภาพแผนที่ขึ้นมาดู

9-11-2017 7-47-00 PM

5. ทดสอบการทำงานกับ shape file
-ทำการอ่านไฟล์ province.shp จากโฟเดอร์ data
– ทดสอบผลการอ่านไฟล์ด้วยการ แสดงข้อมูลบน table
– แสดงข้อมูล Geometry object แบบ WKT (polygon) พร้อมข้อมูลจาก database(.dbf)

9-11-2017 7-54-56 PM

– ทำการ plot แผนที่เพื่อดูผลลัพธ์
9-11-2017 8-00-25 PM

– ทดลองทำการคำนวณเชิงพื้นที่ การหา Boundary ของ polygon
9-11-2017 8-03-54 PM

– ทำการคำนวณเชิงพื้นที่ การหา   Area ของ polygon แต่ละ Feature

9-11-2017 8-04-40 PM

– ทำการค้นหาข้อมูลตามเงื่อนไขเชิงบรรยายและเชิงพื้นที่
– คำนวณหาค่า ความหนาแน่นประชากรรายจังหวัด
– จากนั้นแสดงผลแบบ thematic map

9-11-2017 8-33-08 PM

 

6. การแปลงระบบพิกัด 
– ทดลองแปลงพิกัดจาก UTM Z47 ไปเป็น Geographic coordinate (WGS84)

9-11-2017 8-36-49 PM

7. เชื่อมข้อมูลจาก WFS Server
– ใช้บริการจาก gservices.gistda.or.th/geoserver/wfs
– ทดสอบดึงข้อมูล Geospatial ผ่าน WFS Server ในรูปแบบ  geojson

9-11-2017 8-44-16 PM
– แปลง geojson เข้าเป็น data frame ผ่าน Geodataframe
– ทดสอบผลลัพธ์ด้วยการ plot แผนที่
9-11-2017 8-44-28 PM

 

อ้างอิงจาก
http://geopandas.org/

 

 

 

Advertisements

ใส่ความเห็น

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 /  เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

สร้างเว็บไซต์หรือบล็อกฟรีที่ WordPress.com.

Up ↑

%d bloggers like this: