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

使用Python以优雅的方式实现根据shp数据对栅格影像进行切割

rasterio:这是一个开源的影像处理库,非常好用,基本涵盖了常用的功能。也可以配合numpy进行数据计算。 datashader:这是一个开源的大数据可视化库,可以进行遥感影像、矢量数据的可视化。...src.meta.copy()读出原始元数据信息并进行拷贝,kwargs.update原始元数据更新目标元数据。        ...__geo_interface__]        其中shpdata读出的shp数据对象。...__geo_interface__]        其中i表示的是取出元素的序号,最后都要采用[]结果变成数组,因为rasterio最后需要传入一个数组参数。...(newtiffname, "w", **out_meta) band_mask.write(out_image)        其中src切割前的影像数据,features上一步得到的shp数据转换后的

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

Earthpy | 这样超赞的艺术地图也能轻松绘制...

我们第一个数据可视化交流圈子也已经上线了,主要以我的第一本书籍《科研论文配图绘制指南-基于Python》基础进行拓展,提供「课堂式」教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面...~~ 参与课程或者圈子的你获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。...~~ earthpy简介及安装 EarthPy是一个 python 软件包,它使使用开源工具绘制和处理空间栅格和矢量数据变得更加容易。...Earthpy 依赖于侧重于矢量数据的 geopandas 和便于输入和输出光栅数据文件的rasterio,你还可以使用 matplotlib 进行绘图操作。...可以使用pip进行安装,但之前需要安装rasterio, geopandas, numpy等包: pip install earthpy earthpy包可视化功能 我们重点还是放在EarthPy工具的可视化展示上面

13210

Android Apk瘦身方案2——gradle插件png自动压缩webp

实现思路 在 mergeRes 和 processRes 任务之间插入 WebP 压缩任务,如下图所示: 使用开源框架Cwebp,使用命令行对所有的图片进行遍历处理,然后结果输出 Google...由于 WebP 格式在 14 <= minSdkVersion <= 17 不支持带 alpha 通道的图像,所以,针对 AAPT2, alpha 两个维度, task 分成了4 种: 应用是发布在...Google Play 上,应用的启动图标必须是 PNG 格式,否则 Google Play 不会接受。...compressed_res_cwebp/debug/compressDebugResourcesWithCwebp/drawable-xxhdpi-v4/abc_ic_star_black_48dp.webp 即父文件夹...it.second.sourcePath, "-o", output.absolutePath)这句 这样,图片就通过命令变成了webp文件 接着判断执行结果 when (rc.exitValue) 当rc.exitValue0

1.4K40

(数据科学学习手札84)基于geopandas的空间数据分析——空间计算篇(上)

本文是基于geopandas的空间数据分析系列文章的第8篇,通过本文你学习到geopandas中的空间计算(由于geopandas中的空间计算内容较多,故拆分成上下两篇发出,本文是上篇)。...2 基于geopandas矢量计算 geopandas中的矢量计算根据性质的不同可分为以下几类: 2.1 构造型方法 geopandas中的构造型方法(Constructive Methods)指的是从单个...unary_union   我们都知道,不管是GeoSeries还是GeoDataFrame,其每一行数据都代表独立的shapely矢量要素,而通过unary_union属性,我们可以一整列矢量合并为单独的一个...图12 2.3 叠加分析 geopandas基于shapely中的overlay(),GeoDataFrame赋予了同样的可以作用到整个矢量列的overlay(),使得我们可以对两个GeoDataFrame...2.4 空间融合与拆分   有时候我们希望对矢量数据按照某些字段进行分组,再分别对非矢量列与矢量列进行聚合及合并,类似于pandas中的groupby.agg();而有些时候我们希望把矢量类型Multi-xxx

3.9K31

基于geopandas的空间数据分析——空间计算篇(上)

本文是基于geopandas的空间数据分析系列文章的第8篇,通过本文你学习到geopandas中的空间计算(由于geopandas中的空间计算内容较多,故拆分成上下两篇发出,本文是上篇)。...2 基于geopandas矢量计算 geopandas中的矢量计算根据性质的不同可分为以下几类: 2.1 构造型方法 geopandas中的构造型方法(Constructive Methods)指的是从单个...)下就是以米单位,因此需要注意一定要先将矢量数据转换为合适的投影坐标系之后,再进行缓冲区分析才是合理有效的 resolution:因为在创建缓冲区时,对于构成矢量对象的每一个点,都会以对应点中心向外创建半径...unary_union 我们都知道,不管是GeoSeries还是GeoDataFrame,其每一行数据都代表独立的shapely矢量要素,而通过unary_union属性,我们可以一整列矢量合并为单独的一个...yoff,分别控制在x维度和y维度上的平移距离(与对应的投影单位保持一致): 图12 2.3 叠加分析 geopandas基于shapely中的overlay(),GeoDataFrame赋予了同样的可以作用到整个矢量列的

3.2K30

使用 ChatGPT 和 Python 分析 Sentinel 2 图像。

在本文中,我们讨论如何使用 ChatGPT 分析 Sentinel 2 图像,我们提供一些 Python 示例代码以帮助您入门。本文中的代码是由 chatGPT 创建的。...此外,Python 有许多库可以使使用 Sentinel 2 图像变得更加容易,包括rasteriogeopandas和matplotlib。...下面是一个示例 Python 代码,用于打开 Sentinel-2 光栅文件并使用以下方法绘制假彩色合成图rasterio: import rasterio from rasterio.plot import...然后可以使用模块show中的函数显示生成的图像rasterio.plot。 一旦我们 Sentinel 2 图像加载到 Python 中,我们就可以开始从中提取信息。...rasterio以下是使用 计算 `Sentinel-2` 栅格文件的归一化差异植被指数 (NDVI)并绘制结果的示例 Python 代码: 代码如下: import rasterio import

32010

geopandas轻松叠加在线底图

❝本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 国庆期间,抽空给大家分享在geopandas...图1 2 在geopandas中叠加在线地图 我们需要配合contextily这个第三方库来辅助geopandas叠加在线地图,在geopandas已经被正确安装的情况下,使用pip install contextily...从下面这个小例子出发: import geopandas as gpd import contextily as ctx import matplotlib.pyplot as plt cq = gpd.read_file...图2 叠加在线地图示例 下面我们来「划重点」,在图2所示的例子中,我们前面正常读入矢量数据后「一定要先变换投影web墨卡托即EPSG:3857」,接着正常绘图,在最后一步时ax对象传入ctx.add_basemap...在稍事等待之后(如果没有“特殊”的上网技巧,可能要多等一段时间),我们的底图便自动获取拼接完毕,之后直接导出图像文件即可,是不是非常的方便~ 在掌握了geopandas+contextily相互配合叠加在线底图之后

1.9K50

(数据科学学习手札96)在geopandas中叠加在线地图

本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   国庆期间,抽空给大家分享在geopandas...图1 2 在geopandas中叠加在线地图   我们需要配合contextily这个第三方库来辅助geopandas叠加在线地图,在geopandas已经被正确安装的情况下,使用pip install...从下面这个小例子出发: import geopandas as gpd import contextily as ctx import matplotlib.pyplot as plt cq = gpd.read_file...图2 叠加在线地图示例   下面我们来划重点,在图2所示的例子中,我们前面正常读入矢量数据后一定要先变换投影web墨卡托即EPSG:3857,接着正常绘图,在最后一步时ax对象传入ctx.add_basemap...在稍事等待之后(如果没有“特殊”的上网技巧,可能要多等一段时间),我们的底图便自动获取拼接完毕,之后直接导出图像文件即可,是不是非常的方便~   在掌握了geopandas+contextily相互配合叠加在线底图之后

78730

(数据科学学习手札162)Python GIS神器geopandas 1.0版本发布

,实现对矢量要素的坐标转换,其中自定义函数的输入N行2列后N行3列的numpy数组,输出形状与输入一致即可,我们可以配合numpy中的apply_along_axis()实现自由的坐标点级别转换计算,...新增dwithin()方法   新增方法dwithin(),用于快速判断矢量A是否在矢量B目标的指定距离内: 2.1.18 新增to_geo_dict()方法   新增方法to_geo_dict(),用于...中真正意义上直接实现“匹配与目标要素距离在XXX以内的纪录行”: 2.2.2 配合pd.read_csv指定矢量列类型   在新版本中,我们可以GeoDataFrame写出csv格式,并在使用pd.read_csv...()读取时,通过dtype参数将对应列指定解析矢量类型: 2.2.3 to_json()新增参数show_bbox、drop_id、to_wgs84   针对GeoDataFrame.to_json(...,更换为union_all() use_pygeos废弃并在1.1版本中正式移除   由于pygeos已经合并入geopandas底层矢量计算所依赖的新版shapely中,因此对应的use_pygeos

1200

geopandas轻松叠加在线底图

分享 成长 ❝本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 国庆期间,抽空给大家分享在geopandas...图1 2 在geopandas中叠加在线地图 我们需要配合contextily这个第三方库来辅助geopandas叠加在线地图,在geopandas已经被正确安装的情况下,使用pip install contextily...) 图2 叠加在线地图示例 下面我们来「划重点」,在图2所示的例子中,我们前面正常读入矢量数据后「一定要先变换投影web墨卡托即EPSG:3857」,接着正常绘图,在最后一步时ax对象传入ctx.add_basemap...在稍事等待之后(如果没有“特殊”的上网技巧,可能要多等一段时间),我们的底图便自动获取拼接完毕,之后直接导出图像文件即可,是不是非常的方便~ 在掌握了geopandas+contextily相互配合叠加在线底图之后.../osmfr/{z}/{x}/{y}.png 图11 https://stamen-tiles-a.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.png

87620

(数据科学学习手札154)geopandas 0.14版本新特性一览

发布了其0.14.0新版本,在这次新版本更新中,不仅是新增了许多矢量计算API,还开始日后正式发布1.0版本做准备,对一些底层依赖版本进行改动。...今天的文章中,我就将为大家一一介绍相关的更新内容: 2 geopandas 0.14版本更新内容 2.1 安装新版本geopandas   需要注意的是,从0.14版本开始,geopandas最低支持的...0.14版本底层依赖变动   在0.14版本中,geopandas底层默认使用shapely(>=2.0版本)进行高性能矢量运算,因此geopandas仅会在shapely缺失但pygeos已安装时...且geopandas将会在未来要发布的1.0正式版本中,直接移除对pygeos,以及旧版shapely(<2.0版本)的支持: 2.3 新增一系列矢量计算方法   在这次新版本中,基于shapely...()方法   新增remove_repeated_points()方法,用于沿要素坐标串定义方向,距离在阈值以内的坐标点视作重复点要素进行移除,默认阈值0,你可以在实际应用中灵活调整阈值,从而起到简化要素的目的

30920

geopandas 0.14版本重要更新内容一览

1 简介 大家好我是费老师,就在前两天,Python生态中的GIS运算神器geopandas发布了其0.14.0新版本,在这次新版本更新中,不仅是新增了许多矢量计算API,还开始日后正式发布1.0...今天的文章中,我就将为大家一一介绍相关的更新内容: 2 geopandas 0.14版本更新内容 2.1 安装新版本geopandas 需要注意的是,从0.14版本开始,geopandas最低支持的...0.14版本底层依赖变动 在0.14版本中,geopandas底层默认使用shapely(>=2.0版本)进行高性能矢量运算,因此geopandas仅会在shapely缺失但pygeos已安装时,才会调用...且geopandas将会在未来要发布的1.0正式版本中,直接移除对pygeos,以及旧版shapely(<2.0版本)的支持: 2.3 新增一系列矢量计算方法 在这次新版本中,基于shapelyGeoSeries...()方法 新增remove_repeated_points()方法,用于沿要素坐标串定义方向,距离在阈值以内的坐标点视作重复点要素进行移除,默认阈值0,你可以在实际应用中灵活调整阈值,从而起到简化要素的目的

26630

基于geopandas的空间数据分析——空间计算篇(下)

8篇中,我们对geopandas开展空间计算的部分内容进行了介绍,涉及到缓冲区分析、矢量数据简化、仿射变换、叠加分析与空间融合等常见空间计算操作,而本文就将针对geopandas中剩余的其他常用空间计算操作进行介绍...本文是基于geopandas的空间数据分析系列文章的第9篇,也是整个系列文章主线部分内容的最后一篇,通过本文,你学习到geopandas中的更多常用空间计算方法。...,可以直接进行矢量数据之间的拓扑关系判断并返回对应的bool型判断结果,以contains()例,在比较矢量数据之间拓扑关系时,矢量数据与待比较矢量数据之间主要有以下几种格式: 长度n与长度1进行比较...当主体矢量列长度n,而输入待比较的矢量列长度1时,返回的bool值是待比较矢量列与主题矢量列一一进行比较后的结果: 图10 长度1与长度n进行比较 与前面一种情况类似,只不过这里是主体矢量列与待比较矢量列一一比较之后的结果...在geopandas中我们可以使用clip()函数来基于蒙版矢量对目标矢量进行裁切,其主要参数如下: gdf:GeoDataFrame或GeoSeries,代表将要被裁切的矢量数据集 mask:GeoDataFrame

1.2K20

(数据科学学习手札150)基于dask对geopandas进行并行加速

而我们作为使用者,当然是希望geopandas处理分析矢量数据越快越好。...()将其转换为dask-geopandas中可以直接操作的数据框对象,其中参数npartitions用于原始数据集划分为n个数据块,理论上分区越多并行运算速度越快,但受限于机器的CPU瓶颈,通常建议设置...npartitions机器可调度的CPU核心数: demo_points = gpd.read_file('....=4) demo_points_ddf   在此基础上,后续执行各种运算都需要在代码末尾衔接.compute(),从而真正执行前面编排好的运算逻辑,以非矢量矢量运算分别为例: 2.2 性能比较   ...除了上述的内容外,dask-geopandas还有一些实验性质的功能,如基于地理空间分布的spatial_partitions数据分块策略优化等,待它们稳定之后我会另外发文大家介绍。

96930
领券