Page 143 - python
P. 143
117
ิ
ที่คอลัมน geometry จะเปนขอมูลเปนพิกัดตาง ๆ ในรูปของ POLYGON() ซึ่งภายในประกอบดวยพกัดจุด
ที่เปนขอบเขตของจังหวัด
10.12 การสรางไฟล .shp ดวย GeoPandas
ในหัวขอนี้จะสรางไฟล shape โดยกําหนดขอมูล name, lat, lon และ post
ตัวอยางที่ 10.7 การสรางไฟล shape ดวยขอมูล Points
%pylab inline
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
from geopandas import GeoDataFrame
data = {
'name': [ 'รอยเอ็ด','ขอนแกน','สารคาม'],
'lat':[ 15.919586563602, 16.40871542099, 15.999675121040],
'lng':[ 103.8132632550, 102.5785438879, 103.165512463],
'code':['45000','40000','44000' ]
}
df = pd.DataFrame(data)
from geopandas import GeoDataFrame
g = [Point(i) for i in zip(df['lng'], df['lat'])]
gdf = GeoDataFrame(df, geometry= g )
gdf.to_file("roi-kan-san.shp",encoding='utf-8')
ตัวอยางที่ 10.7 ขอใชไลบรารี่ shapely และ geopandas โดยตัวแปร data จะประกอบดวยชื่อ
ั
ํ
จงหวัด พกด และรหสไปรษณียของ 3 จังหวัด จากนนแปลงเปน df ดวยคาสง DataFrame() ใหตัวแปร g
่
้
ั
ิ
ั
ั
ั
เปนพกดของจุด โดยรวมตัวแปรคูดวยคําสั่ง zip(พิกัด) จากนั้นสราง GeoDataFrame() ดวยตัวแปร df
ั
ิ
และ g และนําไปเขียนลงไฟลตั้งชื่อ roi-kan-san.shp เขารหัสไฟลแบบ UTF-8 ผลลัพธที่ไดเปน shape ที่
สามารถนําไปใชงานในโปรแกรมแผนที่ทั่วไปได
10.13 การเขารหัส Province.shp เปน UTF8
ไฟล Province.shp เขารหัสตัวอกษรดวยมาตรฐาน windows 874 หรือ TIS-620 เมื่อนําไปใช
ั
ี
ั
งานอาจเกิดปญหาการแสดงผลควรหลีกเลี่ยงดวยการเขารหัสอกษรเปน Utf-8 เขยนฟงกชั่น
tis620_utf8() ดังนี้
ตัวอยางที่ 10.8 การสรางฟงกชั่น tis620_utf8()