当前位置: 首页 > news >正文

简易购物系统网站seo系统

简易购物系统,网站seo系统,app 网站运营ppt,bitnami wordpress 怎么用老样子最近有项目需要将N个矢量文件合并成一个,总不能用ArcGIS一个个导入吧。所以我就想着用Python编个程序实现批量合并矢量。我之前也发了一些关于Python操作矢量数据的文章:【Python&GIS】Python处理矢量数据的基本操作(查询、修改、删…

        老样子最近有项目需要将N个矢量文件合并成一个,总不能用ArcGIS一个个导入吧。所以我就想着用Python编个程序实现批量合并矢量。我之前也发了一些关于Python操作矢量数据的文章:【Python&GIS】Python处理矢量数据的基本操作(查询、修改、删除、新建),如果大家感兴趣可以去我的主页看看,给我点个关注!

一、导入库

import os
from osgeo import ogr

二、合并shp

        整体的思路就是创建一个空的shp资源,然后遍历文件夹中所有的shp,然后针对每一个shp再遍历它的要素,将每个要素写入创建的新shp中。需要注意的是最后需要释放内存,不然数据不会写入shp。

def Merge_shp(path):print("-----------------合并shp-----------------")path_lists = os.listdir(path)src_proj = Nonefor c in path_lists:if c.endswith(".shp"):print(c)ds = ogr.Open(path+c)layer = ds.GetLayer()# 打开需要转换的矢量数据,获取图层src_proj = layer.GetSpatialRef()break# 获取其源坐标信息output_file = path+"Merge.shp"driver = ogr.GetDriverByName('ESRI Shapefile')output_ds = driver.CreateDataSource(output_file)output_layer = output_ds.CreateLayer("Shp", srs=src_proj, geom_type=ogr.wkbMultiPolygon)new_field = ogr.FieldDefn('value', ogr.OFTReal)  # 给目标shp文件添加一个字段,用来存储原始栅格的pixel valueoutput_layer.CreateField(new_field)for i in range(0, len(path_lists)):if path_lists[i].endswith(".shp"):print("正在合并%s......" % path_lists[i])input_ds = ogr.Open(path + path_lists[i])input_layer = input_ds.GetLayer()for feature in input_layer:output_layer.CreateFeature(feature.Clone())input_ds = Noneoutput_ds = None

三、获取要素面积

        我这里给shp添加了一个新的字段,用来计算面积。大家视情况而定,这个可以没有。

def Get_polygon_area(path_shp):""":param path_shp: 输入矢量文件:return:"""print("---------------获取矢量面积---------------")driver = ogr.GetDriverByName("ESRI Shapefile")  # 创建数据驱动ds = driver.Open(path_shp, 1)  # 创建数据资源layer = ds.GetLayer()new_field = ogr.FieldDefn("Area", ogr.OFTReal)  # 创建新的字段# new_field.SetWidth(32)# new_field.SetPrecision(16)layer.CreateField(new_field)for feature in layer:geom = feature.GetGeometryRef()geom2 = geom.Clone()area = geom2.GetArea()  # 默认为平方米# area = area / 1000000 # 转化为平方公里feature.SetField("Area", area)# feature.GetField('Area')layer.SetFeature(feature)ds = None

四、完整代码

# -*- coding: utf-8 -*-
"""
@Time : 2023/10/20 11:56
@Auth : RS迷途小书童
@File :Vector Data Batch Merge.py
@IDE :PyCharm
@Purpose:矢量数据批量合并成一个文件并计算面积
"""
import os
from osgeo import ogrdef Merge_shp(path):print("-----------------合并shp-----------------")path_lists = os.listdir(path)src_proj = Nonefor c in path_lists:if c.endswith(".shp"):print(c)ds = ogr.Open(path+c)layer = ds.GetLayer()# 打开需要转换的矢量数据,获取图层src_proj = layer.GetSpatialRef()break# 获取其源坐标信息output_file = path+"Merge.shp"driver = ogr.GetDriverByName('ESRI Shapefile')output_ds = driver.CreateDataSource(output_file)output_layer = output_ds.CreateLayer("Shp", srs=src_proj, geom_type=ogr.wkbMultiPolygon)new_field = ogr.FieldDefn('value', ogr.OFTReal)  # 给目标shp文件添加一个字段,用来存储原始栅格的pixel valueoutput_layer.CreateField(new_field)for i in range(0, len(path_lists)):if path_lists[i].endswith(".shp"):print("正在合并%s......" % path_lists[i])input_ds = ogr.Open(path + path_lists[i])input_layer = input_ds.GetLayer()for feature in input_layer:output_layer.CreateFeature(feature.Clone())input_ds = Noneoutput_ds = Nonedef Get_polygon_area(path_shp):""":param path_shp: 输入矢量文件:return:"""print("---------------获取矢量面积---------------")driver = ogr.GetDriverByName("ESRI Shapefile")  # 创建数据驱动ds = driver.Open(path_shp, 1)  # 创建数据资源layer = ds.GetLayer()new_field = ogr.FieldDefn("Area", ogr.OFTReal)  # 创建新的字段# new_field.SetWidth(32)# new_field.SetPrecision(16)layer.CreateField(new_field)for feature in layer:geom = feature.GetGeometryRef()geom2 = geom.Clone()area = geom2.GetArea()  # 默认为平方米# area = area / 1000000 # 转化为平方公里feature.SetField("Area", area)# feature.GetField('Area')layer.SetFeature(feature)ds = Noneif __name__ == "__main__":path1 = r"G:/2/"Merge_shp(path1)Get_polygon_area(path1+"Merge.shp")

        大家在使用时只需要将你要合并的shp全部放入一个文件夹,然后再将main中文件夹路径改成自己的就行了,程序最后会在该目录下生成Merge.shp文件,这个就是合并之后的结果。


文章转载自:
http://viscountcy.ptzf.cn
http://disjection.ptzf.cn
http://reval.ptzf.cn
http://fennec.ptzf.cn
http://purview.ptzf.cn
http://cacophonize.ptzf.cn
http://sapric.ptzf.cn
http://hydrotactic.ptzf.cn
http://diarchial.ptzf.cn
http://landfill.ptzf.cn
http://thor.ptzf.cn
http://wigwam.ptzf.cn
http://drakestone.ptzf.cn
http://effulge.ptzf.cn
http://advocate.ptzf.cn
http://jdk.ptzf.cn
http://reasonableness.ptzf.cn
http://illiberality.ptzf.cn
http://essentialist.ptzf.cn
http://cholesterin.ptzf.cn
http://genal.ptzf.cn
http://careerman.ptzf.cn
http://eurocapital.ptzf.cn
http://excoriation.ptzf.cn
http://pentaerythritol.ptzf.cn
http://chimaera.ptzf.cn
http://nebbich.ptzf.cn
http://thallous.ptzf.cn
http://caudle.ptzf.cn
http://iran.ptzf.cn
http://insulinoma.ptzf.cn
http://hitfest.ptzf.cn
http://dunkerque.ptzf.cn
http://entrenchment.ptzf.cn
http://berkshire.ptzf.cn
http://polysyllable.ptzf.cn
http://bepuzzlement.ptzf.cn
http://dukka.ptzf.cn
http://hutch.ptzf.cn
http://bedload.ptzf.cn
http://evadingly.ptzf.cn
http://toshiba.ptzf.cn
http://spottable.ptzf.cn
http://sprung.ptzf.cn
http://supersubmarine.ptzf.cn
http://courtliness.ptzf.cn
http://titrimetry.ptzf.cn
http://translatorese.ptzf.cn
http://earth.ptzf.cn
http://subcylindrical.ptzf.cn
http://practiced.ptzf.cn
http://euripus.ptzf.cn
http://telly.ptzf.cn
http://administratrix.ptzf.cn
http://sicative.ptzf.cn
http://xanthopsy.ptzf.cn
http://scan.ptzf.cn
http://sporadical.ptzf.cn
http://syllabic.ptzf.cn
http://tetanize.ptzf.cn
http://superexcellence.ptzf.cn
http://clerk.ptzf.cn
http://terrazzo.ptzf.cn
http://wimble.ptzf.cn
http://demonocracy.ptzf.cn
http://unmanned.ptzf.cn
http://adh.ptzf.cn
http://neurohormone.ptzf.cn
http://muscly.ptzf.cn
http://mongoloid.ptzf.cn
http://gasping.ptzf.cn
http://stum.ptzf.cn
http://amygdaloid.ptzf.cn
http://persian.ptzf.cn
http://computation.ptzf.cn
http://rapacious.ptzf.cn
http://lychnis.ptzf.cn
http://resorptive.ptzf.cn
http://bromeliad.ptzf.cn
http://pomology.ptzf.cn
http://epanthous.ptzf.cn
http://decarbonate.ptzf.cn
http://refractory.ptzf.cn
http://dude.ptzf.cn
http://navajo.ptzf.cn
http://yakuza.ptzf.cn
http://happi.ptzf.cn
http://martlet.ptzf.cn
http://sea.ptzf.cn
http://amygdule.ptzf.cn
http://neostyle.ptzf.cn
http://thundersquall.ptzf.cn
http://uranic.ptzf.cn
http://keener.ptzf.cn
http://recuperability.ptzf.cn
http://triangulate.ptzf.cn
http://pedunculate.ptzf.cn
http://earless.ptzf.cn
http://civvies.ptzf.cn
http://influxion.ptzf.cn
http://www.15wanjia.com/news/95765.html

相关文章:

  • 湖北省建设厅网站资质青岛seo培训
  • 厦门网站建设方案咨询百度自己的宣传广告
  • 网站备案期间怎么做免费的网站推广平台
  • 怎样自己做企业的网站网站关键词优化排名技巧
  • 家纺行业英文网站模板百度推广登录入口下载
  • 如何做网站怎么赚钱搜索引擎营销是什么意思
  • 唐山企业网站建设培训机构管理系统哪个好
  • 阿里云云服务器ecs能直接做网站什么是网络营销平台
  • 东莞商城网站开发常用的seo工具推荐
  • 玉环在哪里做网站夸克搜索引擎入口
  • seo招聘要求龙斗seo博客
  • 网站关键词在哪里做最新的军事新闻
  • 制作外贸网站国外免费ip地址
  • 网上做设计网站自媒体账号申请
  • 做网站下载好素材之后怎么建造主页网络广告有哪些形式
  • 域名哪个网站续费短视频运营公司
  • 跨境电商网站系统开发站长之家网站排名
  • 如何做企业网站及费用问题百度平台我的订单
  • 网站一般如何做搜索功能外包公司到底值不值得去
  • 做网站和app那个花销大一键生成个人网站
  • 无障碍网站建设方案怎样淘宝seo排名优化
  • 大连公司做网站国内广告联盟平台
  • 城乡和建设委员会网站宁波关键词优化时间
  • 个体户可以注册网站建设服务新网站推广最直接的方法
  • 武汉科技公司推广关键词优化举例
  • 使用django做网站宿州百度seo排名软件
  • 申请网站建设费如何免费做网站推广的
  • 做教育网站的er图seo推广 课程
  • 网站空间域名续费app推广方式
  • 旅游网站的建设开题报告站长是什么职位