成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > python geopandas讀取、創(chuàng)建shapefile文件的方法

python geopandas讀取、創(chuàng)建shapefile文件的方法

熱門標(biāo)簽:上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià) 煙臺(tái)電話外呼營(yíng)銷系統(tǒng) 長(zhǎng)春極信防封電銷卡批發(fā) 銀川電話機(jī)器人電話 外賣地址有什么地圖標(biāo)注 電銷機(jī)器人錄音要學(xué)習(xí)什么 如何地圖標(biāo)注公司 預(yù)覽式外呼系統(tǒng) 企業(yè)彩鈴地圖標(biāo)注

shapefile是GIS中非常重要的一種數(shù)據(jù)類型,在ArcGIS中被稱為要素類(Feature Class),主要包括點(diǎn)(point)、線(polyline)和多邊形(polygon)。作為一種十分常見的矢量文件格式,geopandas對(duì)shapefile提供了很好的讀取和寫出支持,其DataFrame結(jié)構(gòu)相當(dāng)于GIS數(shù)據(jù)中的一張屬性表,使得可以直接操作矢量數(shù)據(jù)屬性表,使得在python中操作地理數(shù)據(jù)更方便。本文給大家介紹下用Python腳本中對(duì)Shapefile文件(.shp,.shx,.dbf等格式)進(jìn)行讀寫操作。

開發(fā)準(zhǔn)備

由于geopandas有好幾個(gè)依賴庫(kù),推薦大家使用 Miniconda或是 Anaconda來安裝geopandas。

安裝命令:

conda install -c conda-forge geopandas   

國(guó)內(nèi)鏡像:

conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge geopandas                   

使用導(dǎo)入:import geopandas

我這里用的是geopandas 0.7的版本,版本間差異是不太大,最新0.8版本新增了一些查詢、入庫(kù)方面的特性。

shapefile文件信息的讀取

相比pyshp庫(kù),geopandas庫(kù)的數(shù)據(jù)讀取、展示、分析、拓展的效果要更好。它可以讀取zip中的shapefile,還可以讀取GeoJson、ArcGIS中地理數(shù)據(jù)庫(kù)gdb,以及QGISGeoPackage 存放的矢量數(shù)據(jù)。

import geopandas as gpd
from matplotlib import pyplot as plt

data = gpd.read_file(r'E:\gisData\行政區(qū)劃數(shù)據(jù)2019\省.shp')#讀取磁盤上的矢量文件
#data = gpd.read_file('shapefile/china.gdb', layer='province')#讀取gdb中的矢量數(shù)據(jù)
print(data.crs)  # 查看數(shù)據(jù)對(duì)應(yīng)的投影信息
print(data.head())  # 查看前5行數(shù)據(jù)
data.plot()
plt.show()#簡(jiǎn)單展示

顯示效果:

shapefile文件的創(chuàng)建

要素類的創(chuàng)建效率很高,既能創(chuàng)建要素實(shí)體,也能寫入屬性信息和定義投影。下面先簡(jiǎn)單介紹下三種要素類的創(chuàng)建方法。

點(diǎn)狀要素類的創(chuàng)建

核心代碼:

# 對(duì)應(yīng)shapely.geometry中的Point,用于表示單個(gè)點(diǎn),下面我們創(chuàng)建一個(gè)由若干Point對(duì)象組成
cq = geopandas.GeoSeries([geometry.Point(110, 60),
                          geometry.Point(110.5, 50.4),
                          geometry.Point(120, 55),
                          geometry.Point(107.8, 54.6),
                          geometry.Point(114.6, 50)],
                         crs='EPSG:4326',  # 指定坐標(biāo)系為WGS 1984
                         index=['一號(hào)', '二號(hào)', '三號(hào)', '四號(hào)', '五號(hào)'],  # 相關(guān)的索引
                         )
# 導(dǎo)出數(shù)據(jù)為shapefile文件
cq.to_file('./output/{}.shp'.format(os.path.basename(__file__).replace('.py', '')),
           driver='ESRI Shapefile',
           encoding='utf-8')

線狀要素類的創(chuàng)建

核心代碼:

# 這里shapely.geometry.LineString([(x1, y1), (x2, y2), ...])用于創(chuàng)建多點(diǎn)按順序連接而成的線段
cq = geopandas.GeoSeries([geometry.LineString([(0, 0), (1, 1), (1, 0)]),
                          geometry.LineString([(0.5, 2), (0, 1), (-1, 0)])],
                         crs='EPSG:4326',
                         index=['一號(hào)線', 'b'])
cq.to_file('./output/{}.shp'.format(os.path.basename(__file__).replace('.py', '')),
           driver='ESRI Shapefile',
           encoding='utf-8')

面狀要素類的創(chuàng)建

核心代碼:

# 對(duì)應(yīng)shapely.geometry中的Polygon,用于表示面,下面我們創(chuàng)建一個(gè)由若干Polygon對(duì)象組成
cq = geopandas.GeoSeries([geometry.Polygon([(14, 14), (13, 18), (20, 11), (18, 10)]),
                          geometry.Polygon([(0, 0), (10, 0), (10, 10), (0, 10)],
                                           [((1, 3), (5, 3), (5, 1), (1, 1)),
                                            ((9, 9), (9, 8), (8, 8), (8, 9))]),
                          geometry.Polygon([(11, 2), (11, 10), (12, 10), (12, 2)])
                          ],
                         index=['簡(jiǎn)單面', '復(fù)雜面', 'c區(qū)'],  # 構(gòu)建一個(gè)索引字段
                         crs='EPSG:4326',  # 坐標(biāo)系是:WGS 1984
                         )
cq.to_file('./output/{}.shp'.format(os.path.basename(__file__).replace('.py', '')),
           driver='ESRI Shapefile',
           encoding='utf-8')

拓展應(yīng)用實(shí)例

展高程點(diǎn)

高程點(diǎn)文件存儲(chǔ)格式與CASS中讀取的DAT格式一致,示例:【1,ZDH ,450000.000,4100000,20002,DYG,450000.000,4100000,2000 】其中,“1”代表的是“點(diǎn)號(hào)”,“ZDH”代表的是“代碼”,之后的分別是“東坐標(biāo)、北坐標(biāo)、高程值”即“Y、X、H ”或者是“X、Y、H ”

AutoCAD中展點(diǎn)效果

geopandas中展點(diǎn)效果

實(shí)現(xiàn)代碼

# -*- coding: utf-8 -*-

import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
from matplotlib import pyplot as plt
from matplotlib.ticker import FuncFormatter

# 讀取數(shù)據(jù)
file_path = './data-use/高程數(shù)據(jù).csv'
rankings_colname = ['name', 'mark', 'longitude', 'latitude', 'height'];
df = pd.read_csv(file_path, header=None, names=rankings_colname)
# print(df.head(5))#輸出前五行數(shù)據(jù)查看
xy = [Point(xy) for xy in zip(df['longitude'], df['latitude'])]
pts = gpd.GeoSeries(xy)  # 創(chuàng)建點(diǎn)要素?cái)?shù)據(jù)集
#保存為SHP文件
pts.to_file('./output/展高程點(diǎn).shp', driver='ESRI Shapefile', encoding='utf-8')
"""fig是用來設(shè)置圖像大小參數(shù),ax是行列有多少個(gè)點(diǎn)"""
fig, ax = plt.subplots(figsize=(8, 6))  # 返回一個(gè)包含figure和axes對(duì)象的元組
ax = pts.plot(ax=ax,
              facecolor='white',
              edgecolor='black',
              marker='X',
              linewidth=0.5,  # 內(nèi)外符號(hào)比例系數(shù)
              markersize=12,
              label='高程點(diǎn)')
# 地圖標(biāo)注
new_texts = [plt.text(x_ + 1, y_ + 1, text, fontsize=8) for x_, y_, text in
             zip(df['longitude'], df['latitude'], df['name'])]


# 設(shè)置坐標(biāo)軸
def formatnum(x, pos):
    # return '$%.1f$x$10^{4}$' % (x / 10000)#科學(xué)計(jì)數(shù)法顯示
    return int(x)  # 取整顯示


formatter = FuncFormatter(formatnum)
ax.yaxis.set_major_formatter(formatter)

# 美觀起見隱藏頂部與右側(cè)邊框線
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
plt.grid(True, alpha=0.4)  # 顯示網(wǎng)格,透明度為50%
ax.legend(title="圖例", loc='lower right', ncol=1, shadow=True) # 添加圖例
plt.title('展高程點(diǎn)', fontdict={'weight': 'normal', 'size': 20}) # 設(shè)置圖名改變圖標(biāo)題字體
# 保存圖片
plt.savefig('images/展高程點(diǎn).png', dpi=300, bbox_inches='tight', pad_inches=0)
plt.show()

點(diǎn)集轉(zhuǎn)面

將一系列點(diǎn)的集合轉(zhuǎn)為面狀要素類,下面以甘肅省的地震帶為例(字段對(duì)應(yīng):名稱,面索引,點(diǎn)索引,經(jīng)度,緯度)。

數(shù)據(jù)預(yù)覽

效果預(yù)覽

實(shí)現(xiàn)代碼

import geopandas as gpd
import pandas as pd
from shapely.geometry import Polygon
from matplotlib import pyplot as plt

raw = pd.read_excel('./data-use/甘肅省地震帶.xls')  # 原始數(shù)據(jù)
# 轉(zhuǎn)換為面要素
output = raw.groupby('id') \

    .apply(lambda df: Polygon([(x, y) for x, y in zip(df['longitude'], df['latitude'])])) \

    .to_frame(name='geometry')

# 轉(zhuǎn)換為GeoDataFrame
output = gpd.GeoDataFrame(output, crs='EPSG:4326')
output.plot()
# 地圖標(biāo)注
new_longitude = raw.groupby('name', as_index=False,)['longitude'].mean()
new_latitude = raw.groupby('name', as_index=False)['latitude'].mean()
new_df = pd.merge(pd.DataFrame(new_longitude),pd.DataFrame(new_latitude))
new_texts = [plt.text(x_ , y_ , text, fontsize=8) for x_, y_, text in
             zip(new_df['longitude'], new_df['latitude'], new_df['name'])]
# 導(dǎo)出shapefile
output.to_file('output/地震帶.shp')  
plt.show()

創(chuàng)建緩沖區(qū)、多環(huán)緩沖區(qū)

實(shí)現(xiàn)代碼:

import os
import shapely
import geopandas as gpd
import matplotlib.pyplot as plt

polygon = shapely.geometry.Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
# 分別繪制多邊形、多邊形正向緩沖區(qū),坐標(biāo)系是WGS1984,單位是度
cq = gpd.GeoSeries([polygon,
                    polygon.buffer(distance=1),
                    polygon.buffer(distance=3)],
                   crs='EPSG:4326')
# 導(dǎo)出數(shù)據(jù)為shapefile文件
cq.to_file('./output/{}.shp'.format(os.path.basename(__file__).replace('.py', '')),
           driver='ESRI Shapefile',
           encoding='utf-8')
ax = cq.plot(alpha=0.2)
ax.axis('off')  # 取消坐標(biāo)軸的顯示
plt.show()

寫在最后

附相關(guān)完整代碼的下載,還有更多有趣的內(nèi)容,感興趣的朋友們可以自行實(shí)踐。喜歡的朋友們可以點(diǎn)個(gè)關(guān)注,后續(xù)將持續(xù)更新,精彩無(wú)限^ - ^

鏈接: https://pan.baidu.com/s/1g7G8sQ17-9XIhojyQ1M7Ww

提取碼: 59vz

最后給大家強(qiáng)烈安利一個(gè)geopandas學(xué)習(xí)博客: https://www.cnblogs.com/feffery/tag/geopandas/

以上就是python geopandas讀取、創(chuàng)建shapefile文件的方法的詳細(xì)內(nèi)容,更多關(guān)于python讀取shapefile文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python Pandas分組聚合的實(shí)現(xiàn)方法
  • python中pandas對(duì)多列進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)
  • 詳解python pandas 分組統(tǒng)計(jì)的方法
  • Python Pandas實(shí)現(xiàn)數(shù)據(jù)分組求平均值并填充nan的示例
  • Python學(xué)習(xí)筆記之pandas索引列、過濾、分組、求和功能示例
  • Python Pandas的簡(jiǎn)單使用教程
  • Python pandas入門系列之眾數(shù)和分位數(shù)
  • Python pandas求方差和標(biāo)準(zhǔn)差的方法實(shí)例
  • 使用Python pandas讀取CSV文件應(yīng)該注意什么?
  • 利用python Pandas實(shí)現(xiàn)批量拆分Excel與合并Excel
  • python pandas分組聚合詳細(xì)

標(biāo)簽:佳木斯 西寧 潮州 珠海 湖北 盤錦 上饒 宜昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python geopandas讀取、創(chuàng)建shapefile文件的方法》,本文關(guān)鍵詞  python,geopandas,讀取,創(chuàng)建,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python geopandas讀取、創(chuàng)建shapefile文件的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于python geopandas讀取、創(chuàng)建shapefile文件的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久精品福利| 亚洲网友自拍| 久久综合之合合综合久久| 少妇久久久久久| 狼人天天伊人久久| 极品人妻一区二区| aa成人免费视频| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲欧美日韩爽爽影院| 日韩午夜精品电影| 亚洲伊人第一页| 美女少妇一区二区| 91午夜视频| 欧美另类videos死尸| 精品国内二区三区| 农村少妇一区二区三区四区五区| 欧美一区二区成人6969| 在线a视频网站| √最新版天堂资源网在线| 欧美一级日韩一级| 波多野结衣片子| www.狠狠操.com| 欧美老人xxxx18| 手机精品视频在线| bl视频在线免费观看| 国产成人无码专区| 午夜亚洲伦理| 欧美videos巨大粗暴| 国产精品久久毛片av大全日韩| 成人短视频在线观看免费| 欧美精品momsxxx| 亚洲欧美aaa| 久久99精品久久久野外观看| avtt中文字幕| 精品全国在线一区二区| 中文字幕第24页| 国产a级黄色大片| 美女一区二区久久| 伊人网在线视频| 国产精品久久波多野结衣| 中国毛片在线观看| 亚洲精品一二三**| 精品乱码一区二区三区四区| chien国产乱露脸对白| 欧美性猛交ⅹxxx乱大交免费| 日本少妇aaa| 国产免费黄视频| 亚洲日本中文字幕在线| 日韩精品1区| 午夜精品久久久久久久99樱桃| 成人免费91| 超碰在线免费观看97| 国产精品白丝一区二区三区| 国产富婆一级全黄大片| 国产福利热线视频| 成人黄色中文字幕| 秋霞影视一区二区三区| 日韩国产专区| 日韩在线观看你懂的| 97超碰在线免费| 欧美一区二区精品在线| 国产一区二区三区色淫影院| 免费黄网站在线观看| 国产国语**毛片高清视频| 羞羞视频立即看| 青青草免费在线视频观看| 亚洲一区二区三区黄色| 天天射综合网站| 姬川优奈av一区二区在线电影| 久久久久久不卡| 欧美成人影院在线播放| 免费国产一区二区| 欧美成人三级在线播放| 亚洲视频 欧洲视频| 国产按摩一区二区三区| 亚洲图片综合网| 91精品一区二区三区综合在线爱| 希岛爱理av免费一区二区| 久久久久久国产精品无码| dy888亚洲精品一区二区三区| 成人午夜在线观看| 韩国av在线免费观看| 国产一区二区三区的电影| 7777精品伊久久久大香线蕉语言| 特大黑人娇小亚洲女mp4| av日韩一区| 欧美人成在线观看| 亚洲成人手机在线| 精品视频无码一区二区三区| 午夜精品亚洲| 欧美另类交视频| 欧美午夜寂寞| 战狼4完整免费观看在线播放版| 国产精品第13页| 亚洲熟女乱色一区二区三区久久久| 久久www成人_看片免费不卡| 日韩久久久久久久久久久久久| 免费观影入口看日本视频| 最新精品在线| 最新国产热播激情视频| 夜夜春成人影院| 成人自拍偷拍| 色偷偷综合网| 91精品国产色综合久久不卡98口| 国产日韩欧美高清免费| 色妇色综合久久夜夜| av视屏在线播放| 日韩三级精品| 黄网页在线观看| 在线观看三级网站| 亚洲系列中文字幕| 国产成人自拍视频在线| 91在线观看免费高清完整版在线观看| 疯狂蹂躏欧美一区二区精品| 成人亚洲在线观看| 成人黄色小视频在线观看| 精品少妇一二三区| 欧美无砖专区一中文字| 色啪免费观看视频| 欧美福利影院| 99久久婷婷国产综合精品| 日韩精品久久久久久免费| 无人视频在线观看免费| 在线欧美日韩国产| 亚洲人成午夜免电影费观看| 中老年在线免费视频| 欧美一区二区三区系列电影| 色综合天天综合色综合av| 91成人福利社区| av资源中文在线天堂| 国产白丝一区二区三区| av片在线看| 中文字幕免费在线观看视频| 亚洲精品国产精品国| 国产欧美激情| 九九热国产视频| 北岛玲日韩精品一区二区三区| 中文字幕资源网| 捆绑调教日本一区二区三区| 欧美h视频在线观看| 欧美黑人激情| 自拍偷拍精品| 亚洲日本中文字幕在线| 午夜精品成人在线视频| 波多野结衣一区二区三区在线| a黄色片在线观看| 一级全黄少妇性色生活片| 色爱区成人综合网| 免费在线观看国产精品| 全程偷拍露脸中年夫妇| 成人网ww555视频免费看| 激情文学综合| 成人美女视频在线观看18| 亚洲色图视频网| 亚洲视频一二| 色欲色香天天天综合网www| 欧美高清影院| 欧美国产日本高清在线| 91在线你懂的| www日本高清视频| 最近中文字幕2019第二页视频| 欧美日韩激情美女| 亚洲图片另类小说| 国产日韩欧美精品一区二区三区| 午夜一区二区三区四区| 国产精品国产三级国产aⅴ原创| 欧美黄色aaa| 91精品一区二区三区综合在线爱| 青青草成人在线| 五十路熟女丰满大屁股| 日韩精品在线观看免费| 国产精品成av人在线视午夜片| 亚洲成人在线播放| 四虎海外影库www4hu| 日韩精品一区二区三区色偷偷| 亚洲亚洲精品三区日韩精品在线视频| 麻豆网站在线| 被陌生人带去卫生间啪到腿软| 亚洲欧洲一区二区福利| crdy在线观看欧美| 西野翔中文久久精品国产| 亚洲av成人无码久久精品| 亚洲av成人片无码| 午夜免费电影一区在线观看| 激情五月色综合亚洲小说| 在线视频一区二区三区在线播放| 在线网址91| 久久xxxx| 可以免费在线看黄的网站| 91久久精品国产性色| 亚洲一区二区三区乱码aⅴ| 国产福利资源在线| 精品一区二区三区在线| 欧美国产专区| 99久久免费国产精精品| 久操视频在线| 国产最新精品| 欧美亚洲大片| 色噜噜偷拍精品综合在线| 日韩欧美色电影| 亚洲男人天堂av在线| 久久精品免费电影| 国产精品久久久久免费a∨大胸| 久久网福利资源网站| 亚洲最新在线视频| 写真福利理论片在线播放| 日日摸夜夜添夜夜添精品视频| 亚洲精品在线观看www| 超碰国产在线| 国产成人麻豆免费观看| 黄色网址在线视频| 亚洲天堂网在线视频| 欧美区亚洲区| 影音先锋欧美资源| 136福利精品导航| 日韩毛片在线免费观看| 国产精品视频在| 精品国自产在线观看| 欧美日韩一区高清| 国产剧情一区在线| 嘿咻视频在线看| www.日韩.com| 色老板视频在线观看| 三级a三级三级三级a十八发禁止| 韩国一区二区三区在线观看| 欧美78videosex性欧美| 久久成人精品一区二区三区| 国产精品视频免费观看| 一二三区精品| 91tv国产成人福利| 国产一二三四视频| 国产精品12区| 国产三级国产精品国产国在线观看| 欧美另类视频在线观看| 欧美激情第8页| 亚洲 精品 综合 精品 自拍| 成人免费毛片app| h视频在线网站| 欧美va久久久噜噜噜久久| 成人在线视频一区二区三区| 欧美一区二区三区四区在线观看| 婷婷激情综合网| 国产高清在线不卡| 欧美色欧美亚洲高清在线视频| 中文字幕一区二区三区乱码在线| 精品国产亚洲日本| 僵尸世界大战2 在线播放| 亚洲在线视频福利| 丰满岳妇乱一区二区三区| 一个人看的www视频在线免费观看| 朝桐光av在线一区二区三区| 久久综合中文色婷婷| 欧美日一区二区三区| 最近日韩中文字幕中文| 国产调教视频一区| 成人知道污网站| 日韩精品一区二区三区第95| 情侣偷拍对白清晰饥渴难耐| 久久免费黄色| 国产高清免费av在线| 国产美女被草| 这里只有精品999| 国产亚洲欧美日韩精品| 欧美激情视频在线播放| 亚洲精品喷潮一区二区三区| 亚洲欧美日韩综合一区| 黑人一区二区三区| 成人av免费在线观看| 亚洲电影二区| 国产精品免费91| 麻豆成人91精品二区三区| 久久精品国产清自在天天线| 国产原创中文在线观看| 亚洲女则毛耸耸bbw| 亚洲色婷婷久久精品av蜜桃| 深爱激情五月婷婷| 欧美精品一区二区免费| 黄页网站在线观看视频| 国产精品一区在线观看乱码| 欧美人妖在线| 俄罗斯嫩小性bbwbbw| 精品国产91亚洲一区二区三区婷婷| 国产欧美日韩成人| 2018国产精品| 成人性色av| 亚洲a区在线视频| 日韩经典中文字幕一区| 亚洲精品在线三区| 蜜桃av噜噜一区二区三区麻豆| 国产精品久久久久久久免费大片| 精品一区二区三区四区在线| 久久国产福利国产秒拍| 亚洲自拍偷拍一区| 成熟妇人a片免费看网站| 亚洲天堂中文网| 色激情天天射综合网| 欧美手机在线视频| 国产亚洲人成网站在线观看| 黄网视频午夜青春| 麻豆国产视频| 亚洲精品免费在线观看| 久久久久久久久国产精品| 欧美日韩影视| 国产精品乱码一区二区| 亚洲区免费影片| 91黄色在线视频| 欧美日韩在线观看成人| 精品国产乱码久久久久久果冻传媒| 日韩精品无码一区二区| 欧美精品高清视频| 成人一区二区不卡免费| 亚洲高清一区二区三区| 国产成人av在线影院| 亚洲一级免费视频| 亚洲激情综合网| 一区二区三区四区中文字幕| 国产欧美日韩中文字幕在线| 亚洲精品国产嫩草在线观看| 日韩最新av在线| 国内精品国产三级国产a久久| 好吊色欧美一区二区三区视频| 日韩在线一卡二卡| 欧美成人黄色| 国产免费观看av| 日本一卡2卡三卡4卡网站| 两个人的视频www国产精品| 国产成人三级一区二区在线观看一| 老头吃奶性行交视频|