【PythonGIS】基于Python融合矢量數據(多面合一)

? ? ? ? 之前發過使用批量合并矢量數據的文章:【Python&GIS】基于Python批量合并矢量數據,正好前段時間有需求把矢量數據進行融合,然后就編了一段融合矢量數據的代碼。今天就和大家分享一下如何使用Python對矢量數據實現融合的操作。

1.定義

? ? ? ? 首先大家要明白矢量數據的合并和融合有什么區別!合并是指將多個shp合并成1個shp,而融合是指將1個shp中的多個要素融合成1個要素。如下所示:

2.代碼部分

? ? ? ? 我們這里使用geopandas和shapely.geometry兩個庫,使用geopandas內置的函數實現矢量數據的融合。

# -*- coding: utf-8 -*-
"""
@Time : 2024/1/22 16:09
@Auth : RS迷途小書童
@File :Vector Data Integrate.py
@IDE :PyCharm
@Purpose:融合矢量數據,多面成單面
@Web:博客地址:https://blog.csdn.net/m0_56729804
"""
import geopandas as gpd
from shapely.geometry import Polygon, MultiPolygondef integrate_shp(file1=r"彭俊喜/1.shp", file2=r"彭俊喜/2.shp"):  # shp將多個圖層融合成一個圖層gdf = gpd.read_file(file1)crs_original = gdf.crs  # 獲取坐標系信息# 確保所有的幾何對象都是Polygon類型gdf['geometry'] = gdf['geometry'].apply(lambda x: x if isinstance(x, Polygon) else x.convex_hull)# 將所有面合并為一個面merged_polygon = gdf['geometry'].unary_union# 將結果保存到新的shp文件中output_gdf = gpd.GeoDataFrame({'geometry': merged_polygon}, index=[0]).set_crs(crs_original)output_gdf.to_file(file2, driver='ESRI Shapefile')if __name__ == "__main__":path1 = ""  # 輸入矢量文件path2 = ""  # 輸出融合后的路徑integrate_shp(path1, path2)  # 調用函數

3.總結

? ? ? ? 融合、合并、創建、修改屬性表等都是矢量數據的常見操作,同時也是每個GISer必備的技能,我會不定期地在博客上分享一些自己在進行RS、GIS工作時使用到的代碼以及學習經驗。如果大家感興趣可以點個關注,有什么問題可以評論或者私信!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696383.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696383.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696383.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于Embedding召回和DSSM雙塔模型

文章目錄 基于Embedding召回介紹基于Embedding召回算法分類I2I召回U2I召回 DSSM模型DSSM雙塔模型層次 基于Embedding召回介紹 基于embedding的召回是從內容文本信息和用戶查詢的角度出發,利用預訓練的詞向量模型或深度學習模型,將文本信息轉換成向量進行…

三、創建腳手架和腳手架分析

三、創建腳手架 一、環境準備 1、安裝node.js **下載地址:**https://nodejs.org/zh-cn/界面展示 2、檢查node.js版本 查看版本的兩種方式 node -vnode -version 出現版本號則說明安裝成功(最新的以官網為準) 3、為了提高我們的效率&…

深度學習從入門到不想放棄-7

上一章的內容 深度學習從入門到不想放棄-6 (qq.com) 今天講的也算基礎(這個系列后來我一尋思,全是基礎 ),但是可能要著重說下,今天講前向計算和反向傳播,在哪兒它都永遠是核心,不管面對什么模型 前向計算: 有的叫也叫正向傳播,正向計算的,有的直接把前向的方法梯度下…

祖龍娛樂 x Incredibuild

關于祖龍娛樂 祖龍娛樂有限公司(下文簡稱“祖龍娛樂”)是一家總部位于北京的移動游戲開發公司,成立于 2014 年,擁有成功的大型多人在線角色扮演游戲移動游戲組合,如《六龍爭霸》、《夢幻誅仙》和《萬王之王 3D》。公司…

微信小程序 ---- 慕尚花坊 項目初始化

目錄 項目介紹 01. 項目概述 02. 項目演示 03. 項目技術棧 04. 接口文檔 申請開發權限 項目初始化 01. 創建項目與項目初始化 02. 自定義構建 npm 集成Sass 03. 集成項目頁面文件 04. VsCode 開發小程序項目 項目介紹 01. 項目概述 [慕尚花坊] 是一款 同城鮮花訂購…

Context Capture無法量測連接點,Survey提示Read only只讀模式

Context Capture無法量測連接點,Surveys提示Read only只讀模式 出現這個問題一般是因為當前block已經完成三維重建,所以無法再編輯稀疏重建(空三)結果。只能把當前block復制一份,在復制的block上量測新的連接點。如下…

Netty中的Arena是什么以及LT和ET

Arena是什么 在Netty中,Arena是一種內存分配器(Memory Allocator)的概念。Arena的主要目的是提高內存分配和釋放的效率,減少碎片化,從而提高系統性能。 具體而言,Netyy中的Arena主要用于分配和管理ByteBuf對象的內存,ByteBuf是Ne…

分班問題 、幼兒園分班(C語言)

題目 幼兒園兩個班的小朋友排隊時混在了一起,每個小朋友都知道自己跟前面一個小朋友是不是同班,請你幫忙把同班的小朋友找出來 小朋友的編號為整數,與前面一個小朋友同班用Y表示,不同班用N表示 輸入 輸入為空格分開的小朋友編號…

PowerDesigner 安裝

PowerDesigner 安裝漢化破解使用過程 - 淪陷 - 博客園 (cnblogs.com)https://www.cnblogs.com/huangting/p/12654057.html

不要浪費

解法&#xff1a; 記錄一下tle的代碼 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \n bool check(vector<int>& a, int l,int k) {int sum 0;for (int i 0; i < a.size() && l…

vue3中使用 tui-image-editor進行圖片處理,并上傳

效果圖 下載包 pnpm i tui-image-editor pnpm i tui-color-picker調用組件 //html部分 <el-dialog v-model"imgshow" destroy-on-close width"40%" draggable align-center :show-close"true":close-on-click-modal"false">&l…

mescroll 在uni-app 運行的下拉刷新和上拉加載的組件

官網傳送門: https://www.mescroll.com/uni.html 最近使用到了mescroll 但是一直都是整個頁面的滾動, 最近需求有需要局部滾動, 收藏了一個博主的文章覺得寫的還挺好, 傳送門: https://blog.csdn.net/Minions_Fatman/article/details/134754926?spm1001.2014.3001.5506 使用…

基于springboot+vue的視頻網站系統(前后端分離)

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

Stable Diffusion 模型分享:FenrisXL(芬里斯XL)

本文收錄于《AI繪畫從入門到精通》專欄,專欄總目錄:點這里。 文章目錄 模型介紹生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

IO進程線程第6天

1.使用有名管道完成兩個進程的相互通信 send.c代碼如下&#xff1a; #include <myhead.h>int main(int argc, const char *argv[]) {pid_t pidfork();if(pid>0){//父進程//從管道1中讀取數據int fd-1;if((fdopen("./mkfifo1",O_RDONLY))-1){perror("…

【安卓基礎3】Activity(一)

&#x1f3c6;作者簡介&#xff1a;|康有為| &#xff0c;大四在讀&#xff0c;目前在小米安卓實習&#xff0c;畢業入職 &#x1f3c6;本文收錄于 安卓學習大全&#xff0c;歡迎關注 &#x1f3c6;安卓學習資料推薦&#xff1a; 視頻&#xff1a;b站搜動腦學院 視頻鏈接 &…

微信小程序開發教程:

準備工作 下載并安裝微信開發者工具注冊微信公眾平臺賬號并創建小程序項目 項目結構 app.js&#xff1a;小程序的入口文件&#xff0c;用于定義全局變量和函數app.json&#xff1a;小程序的全局配置文件&#xff0c;用于配置小程序的頁面、窗口樣式、網絡超時時間等app.wxss&am…

反光衣實時識別檢測系統-反光衣穿戴識別系統-智慧工地系統安全帽佩戴---豌豆云

反光衣實時識別檢測系統是根據視頻流的自動化圖像識別檢測&#xff0c;運用前沿的深度神經網絡與云計算技術&#xff0c;替代工作人員的眼睛。 在工地、化工廠、煤礦石化等生產安全地區部署反光衣實時識別檢測系統&#xff0c;運用現場已有的視頻監控可以無死角全自動檢測生產…

Sora橫空出世!AI將如何撬動未來?

近日&#xff0c;OpenAI 發布首個視頻生成“Sora”模型&#xff0c;該模型通過接收文字指令&#xff0c;即可生成60秒的短視頻。 而在2022年末&#xff0c;同樣是OpenAI發布的AI語言模型ChatGPT&#xff0c;簡化了文本撰寫、創意構思以及代碼校驗等任務。用戶僅需輸入一個指令&…

【IC設計】Chisel API之Arbiter和RRArbiter的使用

文章目錄 介紹Chisel的Valid和Ready流控build.sbtRRArbiter代碼示例 介紹 仲裁器在NoC路由器中是重要的組成部分&#xff0c;虛通道仲裁和交叉開關仲裁都需要使用仲裁器。 Chisel提供了Arbiter和RRArbiter仲裁器 Arbiter是基礎的低位優先仲裁器&#xff0c; RRArbiter初始情況…