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()
   138   139   140   141   142   143   144   145   146   147   148