
GIS with Python
文章平均质量分 75
Jackson的生态模型
大家好,我是一名优快云博主,目前正攻读博士研究生学位,专注于全球变化生态学的研究。自加入优快云以来,我始终以满腔热情和不懈的努力,通过撰写博文来分享我的学术探索和实践经验。我的博文内容覆盖了多个领域,包括地理信息系统(GIS)、基于GIS的Python开发、Google Earth Engine的使用、R语言编程以及机器学习等。
我衷心感谢每一位关注、点赞、评论和收藏我的博文的朋友们。正是你们的支持与鼓励,让我在学术道路上更加坚定和自信。展望未来,我计划进一步深化我所热爱的研究领域,不断学习新知,提升自我,并致力于创作更多高质量的内容。同时,我也期待与大家进行更深入的讨论和交流。
展开
-
Python地理数据处理 26:基于arcpy批量操作(七)
此代码使用了最近邻(“NEAREST”)插值方法进行重采样,如果您需要使用其他插值方法,请相应地修改arcpy.Resample_management函数的第四个参数。原创 2023-06-22 21:52:14 · 753 阅读 · 0 评论 -
Python地理数据处理 24:基于arcpy批量操作(六)
对于同一年成像的两景遥感影像分别进行做差处理。如将2001q.tif文件减去2001m.tif文件,将2002q.tif文件减去2002m.tif文件,以此类推。原创 2023-05-16 14:13:26 · 1056 阅读 · 5 评论 -
Python地理数据处理 23:基于arcpy批量操作汇总(五)
之前写了几个关于arcpy使用的博客,但是可能比较零散,如果想使用的话,还需要一个一个的就行运行,比较麻烦,今天我把比较常见的代码合并起来,实现一键运行,十分的方便。原创 2023-05-14 19:47:32 · 796 阅读 · 0 评论 -
Python地理数据处理 22:基于arcpy批量操作(四)
代码描述:遍历a文件夹下的所有tif影像,并使用每个a文件夹中的tif影像对b文件夹下的所有tif影像进行裁剪。裁剪后的栅格将以两个tif文件进行组合命名,并保存到另一个文件夹中原创 2023-05-13 11:42:18 · 2236 阅读 · 2 评论 -
Python地理数据处理 21:基于arcpy批量操作(三)
第三弹:1、对给定的 .tif 文件进行裁剪,输出所有省份的单独 .tif 文件;2、实现对文件名前n个字符相同的tif图像进行栅格运算求和;3.使用栅格计算器删除指定值; 4. 读取两个文件夹中的tif文件,并对两个相对应的文件进行相乘; 5.文件夹中所有tif文件相加。原创 2023-04-28 15:28:19 · 2140 阅读 · 0 评论 -
Python地理数据处理 二十:基于arcpy批量操作(二)
ArcPy是Esri公司开发的一个Python库,用于与ArcGIS软件进行交互。它可以让开发人员通过Python脚本自动化地完成许多GIS任务,包括数据处理、地理空间分析、地图制作等。在ArcPy中,有许多工具和函数可以方便地访问ArcGIS的功能,比如对矢量数据和栅格数据进行操作、创建地图文档、访问图层属性、执行空间分析等等。ArcPy可以让开发人员更加高效地进行GIS数据处理和分析,并且可以将这些自动化的GIS任务集成到Python工作流程中,从而大大提高GIS数据处理和分析的效率和精度。原创 2023-03-28 00:57:43 · 1541 阅读 · 0 评论 -
Python地理数据处理 十九:arcpy批量处理数据之为栅格数据建立属性表并导出
Python地理数据处理 十九:arcpy批量处理数据之为栅格数据建立属性表并导出,以及使用R语言将.dbf格式转换为.xlsx文件格式原创 2023-03-24 19:06:50 · 2524 阅读 · 0 评论 -
Python地理数据处理 十八:arcpy批量处理数据之栅格图像的统计分析(Calculate Statistics)
arcpy批量处理栅格数据(统计分析):MINIMUM —输入栅格中所有像元的最小值。MAXIMUM —输入栅格中所有像元的最大值。MEAN —输入栅格中所有像元的平均值。STD —输入栅格中所有像元的标准差。TOP —范围的顶部值或Y最大值(YMax)。LEFT —范围的左侧值或X最小值(XMin)。RIGHT —范围的右侧值或X最大值(XMax)。原创 2022-11-23 17:08:04 · 2402 阅读 · 0 评论 -
Python地理数据处理 十六:arcpy批量生成缓冲区
朋友们,最近事情太多了,但是我又比较难,总想着要用什么巧妙的办法解决,导致一个问题困扰我很久,但是随之而来的就是生产力爆炸,我把今天写的一个小东西分享给大家,可以用30s的时间完成2个小时的工作任务。文件越多,效率越高!原创 2022-11-03 21:32:58 · 1650 阅读 · 0 评论 -
Python地理数据处理 十五:基于arcpy的批量操作
今天把最近遇到的一些问题和解决方法和大家进行分享,方便自己后面的回顾,也希望帮助大家解决自己的问题。后期如果大家需要的话,我会出一个关于Anusplin插值软件的一个详细教程,免费分享给大家。原创 2022-10-27 09:41:13 · 2394 阅读 · 6 评论 -
Python中的常见错误
目录1. AttributeError: 'NoneType' object has no attribute 'GetLayerByName'1. AttributeError: ‘NoneType’ object has no attribute ‘GetLayerByName’ 原因: 路径问题,说明输入的文件的路径不对,需要重新检查一下问价的路径,如: 错误:folder = r'E:\Google chrome\Download\gis with python\osgeopy data原创 2021-02-07 17:59:00 · 3543 阅读 · 1 评论 -
Python地理数据处理 十四:栅格数据处理(二)
目录1.地面控制点(GCP)2.多幅图像镶嵌3.颜色表1.地面控制点(GCP) 如果想将一个旧的航片或者扫描地图,变成地理数据集,可以运用控制点来进行变换。图像转换类型的不同,所需要的地面控制点的数量也不同,常用方法:一阶多项式(至少3个点)、多项式变换(尽可能多的控制点)、样条插值法(对数据的不同部分使用不同的方程,可以精确拟合所提供的控制点,但可能导致图像其他部分扭曲)。 样条插值法: 使用GDAL自带的 gdal warp 程序进行各种插值方法。获取点坐标的过程比较艰难,但是必须人工原创 2021-03-14 19:10:24 · 3566 阅读 · 4 评论 -
Python地理数据处理 十三:栅格数据处理(一)
目录1.数据重采样1.1 重采样为更小的像素1.数据重采样 ReadAsArray函数可以重采样读取的数据,并且指定输出缓冲区大小或传递一个已有的缓冲区数组。函数格式:band.ReadAsArray([xoff], [yoff], [win_xsize], [win_ysize], [buf_xsize], [buf_ysize], [buf_obj])xoff是开始阅读的专栏,默认值为0。yoff是开始阅读的行,默认值为0。win_xsize是要读取的列数,默认为全部读取。原创 2021-03-12 12:43:11 · 6354 阅读 · 0 评论 -
Python地理数据处理 十二:栅格数据读写
目录1. GDAL1. GDAL GDAL(Geospatial Data Abstraction Library )是非常受欢迎的、强大的栅格文件读写库。GDAL库是开源的,但是有宽松的授权,所以许多商业软件包都使用它。现有的大部分GIS或者遥感平台,不论是商业软件ArcGIS,ENVI还是开源软件GRASS,QGIS,都使用了GDAL作为底层构建库。 GDAL库以其能读写很多不同格式而被人熟知,但是也包含一些数据处理功能,如邻近分析。NumPy模块是专门处理大矩阵数据,并且可以使用GDAL直原创 2021-03-06 18:43:54 · 20115 阅读 · 10 评论 -
Python地理数据处理 十一:空间参照系统(SRS)
目录1. 空间参照2. OSR空间参考2.1 空间参考对象1. 空间参照 空间参考系统由三个部分组成:坐标系统,基准面和投影,所有这些都会影响一组坐标在地球上的对应位置。使用基准来表示地球的曲率,而投影则将坐标从三维地球仪转换为二维地图。 地球椭球具有多种模型,这些模型被称为基准,每一个空间参考系统是基于其中之一。广泛使用的一种全球基准,世界大地测量系统于1984年进行了修订,该基准简称为WGS84。是一种用于具有全球覆盖范围的数据,包括全球定位系统(GPS)。大多数基准被设计为在更局部的区域中原创 2021-02-07 17:22:18 · 4881 阅读 · 3 评论 -
Python地理数据处理 十:动物GPS点位跟踪
首先,需要获得动物跟踪研究的数据:Movebank 在网站中获取加拉帕戈斯信天翁的GPS定位数据,数据格式为 .csv,需要将其转换为shapefile文件,再操作数据。数据信息: 通过location-long和location-lat字段获得x和y坐标来创建一个点,并将单个本地标识符和时间戳列为属性复制。shapefile文件不能真正支持日期时间字段,所以需要将时间戳信息用字符串储存。 1. 从一个csv文件中新建shapefile文件:from osgeo import og原创 2021-02-06 19:33:55 · 1285 阅读 · 3 评论 -
Python地理数据处理 九:发电厂选址问题
区域的合适性从1到7,一般数值大于等于3的区域是合适的。将这些区域与人口普查数据结合,选出风速合适并且每平方千米人口不到0.5%的地方。 人口普查数据包含每个人口普查单元的人口数据,但没有人口密度数据。所以,首先要获得人口属性字段:# 添加一个浮点字段,计算人口密度# 通过HD01_S001字段获取人口普查数据census_fn = os.path.join(data_dir, 'California', 'ca_census_albers.shp')census_ds = ogr.Ope原创 2021-02-05 17:29:10 · 1174 阅读 · 9 评论 -
Python地理数据处理 八:使用GR进行矢量分析
目录1. 叠加分析1. 叠加分析 叠加分析操作: plot颜色:‘r’ 红色, ‘g’ 绿色, ‘b’ 蓝色, ‘c’ 青色, ‘y’ 黄色, ‘m’ 品红, ‘k’ 黑色, ‘w’ 白色。 新奥尔良城市边界、水体和湿地的简单地图:import osfrom osgeo import ogrfrom ospybook.vectorplotter import VectorPlotterdata_dir = r'E:\Google chrome\Download\g原创 2021-02-04 20:34:58 · 1130 阅读 · 5 评论 -
Python地理数据处理 七:使用OGR处理几何要素
目录1. 点集1.1 创建编辑一个点1.2 创建编辑多个点1. 点集1.1 创建编辑一个点 OGR中带有额外z坐标的几何要素被认为是2.5D,而不是3D。再OGR进行空间操作时,不考虑z值。 OGR常量表示的不同几何类型:firepit = ogr.Geometry(ogr.wkbPoint)firepit.AddPoint(10, 21)x, y = firepit.GetX(), firepit.GetY()print('{}, {}'.format(x, y))print(原创 2021-02-04 17:35:14 · 3022 阅读 · 1 评论 -
Python地理数据处理 六:使用OGR过滤数据
目录写在前面1. 属性过滤条件写在前面 过滤条件可以将不想要的要素抛弃,通过过滤条件可以选出符合特定条件的要素,也可以通过空间范围限定要素,这样就可以简单地处理感兴趣的数据。1. 属性过滤条件 过滤条件需要一个条件语句,类似于SQL语句中的Where子句。如:‘Population < 50000’‘Population = 50000’‘Name = “Tokyo”’ 注:比较字符串时,需要用引号将字符串包住,并且保证它们与包住整个查询字符串的引号不同。否则,将会导致语法错误原创 2021-02-02 17:36:14 · 2115 阅读 · 5 评论 -
基于Python的K-means简单分类
对于K-means的分类实现,我用的是 jupyter notebook ,这样更方便,可视性更强。 用Python对卫星数据进行非监督分类,需要 GDAL,Numpy 和 Sklearn,如果查看数据,还需要 Matplotlib :import numpy as npfrom sklearn import clusterfrom osgeo import gdal, gdal_arrayimport matplotlib.pyplot as plt# 让GDAL抛出Python异常,原创 2021-01-27 18:16:57 · 2182 阅读 · 0 评论 -
Python地理数据处理 四:矢量数据读写(二)
目录1. 获取数据的元数据1.1 获取空间参考系统1.2 获取图层自身属性字段信息2. 矢量数据写入2.1 创建新数据源1. 获取数据的元数据 地理空间元数据,即关于数据的数据,它在地理信息中用于描述地理数据集的内容、质量、表示方式、空间参照系、管理方式以及数据集的其他特征等,帮助和促进人们有效地定位、评价、比较、获取和使用地理相关数据,它是实现地理空间数据集共享的核心内容之一。 可以使用 GetFeatureCount() 函数获取一个图层的要素数量。但只适用于图层,不适用于数据源,因为数据源中原创 2021-01-29 15:16:04 · 2410 阅读 · 0 评论 -
Python地理数据处理 三:矢量数据的读写(一)
目录1.矢量数据1.矢量数据 带有明确边界的地理要素,如城市,可以用矢量数据进行很好的表示。但是,连续的数据(如高程数据)则不行。如果在山区,在所有具有相同高程的区域边界绘制一个多边形是非常困难的。但是,可以使用不同的多边形来区分不同的海拔范围。许多种类的数据非常适合于用矢量进行表示。例如,道路图上的要素,道路用线段表示,市县用多边形表示,而城市根据地图比例尺的不同,用点或者多边形表示。地图上所有的要素都有可能用点、线、面来表达。 矢量数据非常适合用于制作地图,但也存在一些不足。如,绘制显示时,如原创 2021-01-25 18:56:20 · 3729 阅读 · 4 评论 -
Python地理数据处理 二:Python基础知识
目录1.编写执行代码2.脚本结构3.变量4.数据类型1.编写执行代码 我所用的是IDLE,这是Python安装完成后提供的一个简单的开发环境。IDLE存在两种窗口:shell窗口和编辑窗口。shell窗口是交互式窗口,键入代码并立即获得结果;编辑窗口可以在空文件里编写代码,并在使用Run执行之前,需要将文件保存为 .py 扩展名的文件,运行结果将在shell窗口显示。 Python的语法高亮显示非常有用,让你分辨出关键字、内置函数、字符串和错误,并且可以使用Tab命令补全。因为Python脚原创 2021-01-23 20:00:41 · 1470 阅读 · 2 评论 -
Python地理数据处理 一 :地理空间数据入门
从今天开始,我将在平台上发布一些关于地理数据处理方面的Python学习心得,谨代表我个人的看法,希望各位能帮我指出我的不足之处,我将加以改正。1.Python和开源工具 使用python和开源工具处理空间数据有以下几个原因:1.python相比于其他语言来说,更容易学习;2.代码容易阅读;3.对于从学习其他语言转变而来,python更容易上手;4.Python含有大量免费扩展模块,且许多都是开源的 Python附带的核心语言包及众多的模块代码,都可以在自己的代码中使用。此原创 2021-01-22 17:01:32 · 4220 阅读 · 0 评论 -
Python地理数据处理 五:矢量文件处理
目录前言1. 矢量文件格式1.1 基于文件的格式前言 不同的矢量文件格式不是通用的,每种格式都有其特定的应用。文件格式还需要考虑到OGR处理数据的能力,因为每种驱动的能力不同。针对某数据集,我们要知道能做什么和不能做什么。1. 矢量文件格式1.1 基于文件的格式 基于文件的格式是指用磁盘驱动器上一个或多个文件组成,并且可以很容易地从一个位置转移到另一个位置。某些格式是专有的并限制于少数软件,有些是开放的标准,所有人都可以编写软件来使用他们。开放格式如:GeoJSON、KML、GML、shap原创 2021-01-31 18:01:02 · 2319 阅读 · 5 评论