首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Shapefile属性操作之增

作者:阿振 写作时间:2020-06-13 又是一个周末 ---- 开篇 《Python空间数据处理实战》系列的博文好久都没有更新了,今天乘周末有点时间,补了个觉,然后写几篇博文。...关于Python空间数据处理,如果大家有什么想看到的内容,欢迎评论区留言,我会增加一些大家需要的内容! 今天我打算用四篇博客简要介绍一下如何对空间矢量数据的属性数据进行操作。...然后读取原始数据,新建一个属性字段Abbr,然后遍历数据的每个Feature要素,取出NAME,再根据字典查询到当前NAME对应的Abbr填充进对应的字段即可。...使用ogr.FieldDefn()函数新建一个字段,然后添加到layer图层。...接下来我们遍历layer的feature,使用SetField()方法设置属性值。记得添加完属性值以后,需要使用SetFeature()方法将当前feature更新到涂层layer中去。

64220

GIS空间分析之Buffer

作者:阿振 开篇 GIS空间分析是通过对GIS系统的空间地物的空间位置以及分布形态等空间特性进行分析推理等得到额外有用信息的过程。GIS空间分析包含广泛的内容,是GIS系统的核心功能。...从这篇博文开始,我们会简单介绍几种GIS系统中最常见最简单的空间分析功能,并使用Python的GDAL API进行实现。...首先,我们来看一下开源GIS软件QGIS中提供的几种简单的空间分析工具,我们接下来的几篇博文会介绍如何使用Python脚本实现这些功能。 ?...Buffer的参数是缓冲区的距离,距离的单位是投影坐标系的默认单位。...最后使用CreateFeature()方法将该Feature添加到图层。 如此循环,直到遍历完所有的Feature为止。

3.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

python使用gdal对shp读取,新建和更新的实例

补充知识:python使用GDAL生成shp文件 GDAL是一个开源的地理工具包,其支持基本所有的地理操作,其有python、java、c等语言包,是地理信息C端开发不可越过的工具,鉴于python语言的简单性...,这里使用pythonGDAL包来进行shp文件的生成,这里本质是利用ogc地理标准的坐标字符串来生成shp。...第一步:安装GDAL环境,建议下载后,本地安装,注意与python版本号要对应,可参考网上教程。...) 在生成的字段名插入要素值,即属性表每行的值 feature = ogr.Feature(layer.GetLayerDefn()) feature.SetField("Name", "ceshi...以上这篇python使用gdal对shp读取,新建和更新的实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

3.6K30

python与地理空间分析(3)shp文件操作

引言 在python与地理空间分析(1)与(2)我们介绍了GIS中常用的数据类型、python在处理地理空间数据时用到的包以及给定经纬度计算空间距离的算法,本期我们主要介绍对地理空间分析中常用到的矢量数据...的字典和列表等数据类型一模一样,可以通过python自带的json库直接解析。...: # 创建要素 feature = ogr.Feature(layer.GetLayerDefn()) # 和设置字段内容进行关联 ,从数据源写入数据 print(...kml文件 Conclusion 本期主要介绍了python GDAL/OGR对shp文件的读写和格式转换,下一部分将对shp文件的空间分析算法和常用操作进行介绍,例如判断两个shp的交并差补以及点插值为面等算法内容...Python命名空间和作用域介绍 中国地图的正确打开方式

14.1K71

Python | GDAL处理矢量数据

> > # 从shapefile读取点要素,以城市人口数据为例 import sys from osgeo import ogr # 打开数据源,打开图层 fn = 'E:/公众号/python...丰富的科学计算库分析数据,得出科学结论 有时候也需要自己生产数据,生成shapefile供其他GIS系统读写 生产数据可以在有GUI的GIS系统手工操作,也可以通过编程语言批量操作 用python的优点...在GDAL/OGR,不恰当的使用几何对象会导致python崩溃!...处理几何对象 使用python语言,批量输出几何对象,可代替在GIS软件的要素创建和编辑操作,极大提高数据处理效率 下面介绍如何: 从零开始创建点、线、面几何对象 编辑已经存在的几何要素 GDAL支持的几何要素...# 创建点要素“火堆”,使用ogr.Geometry函数,设定要素类型为“点” firepit = ogr.Geometry(ogr.wkbPoint) # 设定点的坐标 # 向点对象添加一个点的坐标

9.3K20

Shapefile属性操作之查

下面以两个案例进行介绍: 从给定数据查询中学数量(HighSchool字段)大于1万所的省份 从给定数据查询中学数量最多的省份 下面简单说一下使用GDAL进行属性数据查询的两种思路: 因为矢量数据的属性一般都是以关系表进行保存的...我们可以遍历图层Layer包含的所有Feature要素,然后读取要素的属性数据进行筛选过滤得到我们想要的结果。 SQL查询方式 代码展示 Talk is cheap....from osgeo import ogr ogr.UseExceptions() ds: ogr.DataSource = ogr.Open('.....然后使用ExecuteSQL()方法执行查询,得到的查询结果仍然是一个ogr.Layer图层类,但是图层的要素属性只包含我们查询语句中指定的字段 对于第二个案例,我们本来可以使用一个嵌套的SELECT...)) print(selected[0].GetField('HighSchool')) 方法总结 使用遍历Feature要素的方法进行查询是我们在获取了图层包含的所有Feature要素集合以后,使用Python

89220

矢量数据投影转换

方法介绍 跟栅格数据投影转换一样,使用GDAL库,我们有两种方法进行矢量数据的重投影: 使用命令工具及其对应的命令行API接口进行转换(简单,准确,实践中一定要用这种方法) GDAL提供了ogr2ogr...-t_srs选项制定输出数据投影,当然可以是ESPG,也可以是PROJ4或者OGC WKT格式的投影定义都OK GDAL对该命令的封装的C/C++函数是GDALVectorTranslate(),Python...是gdal.VectorTranslate() 使用GDAL提供的基本API进行实现 如果要自己利用基本API函数实现的话,基本思路如下: 利用osgeo.ogr.Driver.CreateDataSource...()创建输出数据 根据源文件创建目标文件的属性字段定义 利用osgeo.osr.CoordinateTransformation对象将源文件的Geometry对象转为目标文件的Geometry对象(...)): field_def = layer_def.GetFieldDefn(i) dst_layer.CreateField(field_def) # 循环遍历源Shapefile的几何体添加到目标文件

1.7K30

利用python把shp文件写入PostgresSQL数据库

材料: PG数据库(postgreSQL),python,postgis(重点) 过程: Tip~首先,我想先说一下在python运行出现的报错问题(如果你们遇到这个问题可以看一眼,如果你没遇到这个问题...不管怎么样,你需要安装好Python和PostresSQL数据库~这里不加展开了,然后你需要安装~~~~~~PostGIS~~~~~~由PostGIS官网下载: http://www.postgis.org...其次,将shp文件导入Geodataframe。 再把Geodataframe写入pg数据库。...'geometry': Geometry(geometry_type ='POINT', srid=4326)} ) #"tsea"是表名 #dtype的...代表具体字段,相当于'geometry'字段为地理信息 终于,顺利写入(鬼知道我在报错的过程中经历了什么): 更多的,利用GDAL写入shp也可以正常运行了: import os os.system('ogr2ogr

2.2K41

创建Shapefile文件并写入数据

使用osgeo.ogr.DataSource的CreateLayer()方法创建一个图层 使用osgeo.ogr.FieldDefn()定义Shapefile文件的属性字段 创建osgeo.ogr.Feature...对象到当前图层 重复步骤4和5依次添加所有的Feature到当前图层即可 代码实现 下面的例子,我们读取GeoJSON表示的中国省区数据,然后其转为Shapefile格式。...可以看到每个Feature都有一个properties字段和geometry字段,我们需要根据properties字段的信息创建Shapefile数据的属性表,根据geometry字段创建Shapefile的几何数据...= ogr.FieldDefn('CenterX', ogr.OFTReal) layer.CreateField(fcx) fcy = ogr.FieldDefn('CenterY', ogr.OFTReal...) layer.CreateField(fcy) # 变量GeoJSON的features for f in china['features']: # 新建Feature并且给其属性赋值

2.2K30

Shapefile属性操作之改

作者:阿振 写作时间:2020-06-13 ---- 开篇 在上篇的《Shapfile属性操作之增》和《Shapefile属性操作之删》我们分别介绍了对于空间矢量数据属性的增加(CREATE)和删除(...思路是我们遍历图层的每一个Feature要素,然后通过ogr.Feature的SetField()方法更新属性值。 代码展示 Talk is cheap....Show me the code. from osgeo import ogr ogr.UseExceptions() # 打开一个Shapefile ds: ogr.DataSource = ogr.Open.../data/省级行政区.shp', update=True) layer: ogr.Layer = ds.GetLayer() # 填充属性值 for feature in layer: name...使用GetLayer()方法获取图层,然后使用for循环遍历图层的要素。通过GetField()方法获取需要修改的字段,然后通过SetField()方法修改字段。

82910

GDAL简介

GDAL库由OGR和GDAL项目合并而来,OGR主要用于空间要素矢量矢量数据的解析,GDAL主要用于空间栅格数据的读写。此外,空间参考及其投影转换使用开源库 PROJ.4进行。...GDAL提供了C/C++借口,并且通过SWIG提供了Python,Java,C#等的调用借口。当我们在Python调用GDAL的API函数时,其实底层执行的是C/C++编译的二进制文件。...类表示了空间参考信息,各种格式的空间参考的导入导出) Feature(OGRFeature类表示空间要素,一个空间要素是一个空间几何体及其属性的集合) Layer(OGRLayer表示一个图层,一个图层可以包含很多个空间要素...) Dataset(GDALDataset抽象类表示一个矢量数据,一个Dataset可以包含多个图层) 总结一下:一个数据集(Dataset)可以包含多个图层(Layer),一个图层可以包含多个空间要素...(Feature),一个Feature由一个空间几何体(Geometry)及其属性构成 参考资料:OGR Architecture

2.2K40

批量将本地gis数据导入postgis数据库

深感使用规范的存储系统来统一管理gis数据的好处,特别是数据量大了之后,优势便更加明显,你可以选择将很多需要做空间计算的步骤转移到Postgis数据库内进行计算,要知道Postgis提供的空间计算能力与R和Python...ropensci/geojsonio") library("geojsonio") library("rgdal") library("sf") library("maptools") 使用maptools包的...文件单项导入的情况下,纯粹从时间上来看: sf > maptools > rgdal > geojsonio 这里值得一提的是,geojsonio包是封装的rgdal服务,性能上自然略逊rgdal一筹,以上四个包,...sf包的超强IO能力所折服,sf包是一个非常强大的包,实现了基于simple features的所有特性,如果你了解一点儿Postgis的话,你会发现作者把大部分空间运算的函数名称设计的和Postgis的函数一模一样...postgres' password='708965'" l_ply(input_list,task,conn) } #启动任务 Project_io("D:/R/mapdata/Province") Python-gis

2.3K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券