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

如何在python gdal中按经度和纬度裁剪dem?

在Python GDAL中按经度和纬度裁剪DEM(数字高程模型),可以通过以下步骤实现:

  1. 导入所需的库和模块:
代码语言:txt
复制
import os
from osgeo import gdal, ogr
  1. 定义裁剪区域的经纬度范围:
代码语言:txt
复制
xmin, ymin, xmax, ymax = 经度最小值, 纬度最小值, 经度最大值, 纬度最大值
  1. 打开DEM文件:
代码语言:txt
复制
dem_file = 'DEM文件路径'
dataset = gdal.Open(dem_file)
  1. 获取DEM文件的投影信息和地理转换信息:
代码语言:txt
复制
projection = dataset.GetProjection()
geotransform = dataset.GetGeoTransform()
  1. 根据裁剪区域的经纬度范围计算裁剪后的图像大小和位置:
代码语言:txt
复制
xoff = int((xmin - geotransform[0]) / geotransform[1])
yoff = int((geotransform[3] - ymax) / abs(geotransform[5]))
xsize = int((xmax - xmin) / geotransform[1])
ysize = int((ymax - ymin) / abs(geotransform[5]))
  1. 创建输出文件:
代码语言:txt
复制
output_file = '输出文件路径'
driver = gdal.GetDriverByName('GTiff')
output_dataset = driver.Create(output_file, xsize, ysize, 1, gdal.GDT_Float32)
output_dataset.SetProjection(projection)
output_dataset.SetGeoTransform((xmin, geotransform[1], 0, ymax, 0, geotransform[5]))
  1. 进行裁剪操作:
代码语言:txt
复制
gdal.Warp(output_dataset, dataset, outputBounds=[xmin, ymin, xmax, ymax])
  1. 关闭数据集:
代码语言:txt
复制
dataset = None
output_dataset = None

以上步骤中,需要替换的部分包括:

  • 经度最小值、纬度最小值、经度最大值、纬度最大值:裁剪区域的经纬度范围。
  • DEM文件路径:待裁剪的DEM文件路径。
  • 输出文件路径:裁剪后的DEM文件保存路径。

这样,就可以使用Python GDAL库按照给定的经纬度范围裁剪DEM文件了。

注意:本回答中没有提及具体的腾讯云产品和产品介绍链接地址,因为腾讯云并没有与GDAL直接相关的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

遥感数据机器学习的准备工作:python将栅格数据提取至EXCEL

大部分我们处理的降水、气温等栅格数据的格式是nc形式,需要我们将他转换成栅格数据并导入至Arcgis,进行下一步操作。...之后我们根据自己的研究区进行裁剪【Spatial Analyst 工具-提取分析-掩膜提取】 下面我们将裁剪好的研究区进行栅格转点【转换工具-由栅格转出-栅格转点】 转好之后的数据我们就可以拿来用了...,下面我们通过python代码实现快速的栅格属性导出至EXCEL表。...tif_files.append(filename) #将文件夹里的tif文件加入只有tif的列表 print(tif_files) sheet1.write(0, 0, "Lon") #excel表的第1列为经度...yoffset)开始,大小为(xsize,ysize)的矩阵 value = data[0, 0] * 0.01 #乘以参数,这个根据自己的数据情况做出修改 #将数据经纬度对应栅格数值写入

1.3K20
  • 在Gazebo中使用DEM構建起伏地形環境

    DEM)是地形表面的3D表示,不包括任何对象,建筑物或植被。...带DEM支持Gazebo(ROS kineticGazebo 7) 为了使用DEM文件,您应该安装GDAL库。...$ sudo apt-get install gdal-bin libgdal-dev libgdal1i python-gdal DEM文件定义转换为SDF格式 有几个组织提供高程数据。...在下面的图片中,您可以看到包含拉斯帕尔马斯的DEM修补程序的路径行,这是西班牙加那利群岛的天堂之一。 使用GLCF搜索工具返回到浏览器,并在标记为开始路径开始行的列写入路径/行值。...然后点击Submit Query;下预览并下载以查看您的结果。选择您的地形文件,然后下载。最后,选择扩展名为.gz的文件,并在您喜欢的文件夹解压缩。

    1.4K30

    Basemap工具函数(4)

    transform_scalar 给一个 cylindrical 投影的标量矩阵及经纬度坐标点,插值这些点到新的矩阵。...如果为 False,输出数组那些边界外的值将被裁剪 masked 如果为True,新网格外的点将被 mask 或置为任意给定值 order 是插值方法 0 表示最邻近插值;1 表示双线性插值;3 表示三次样条插值...本例采用的数据是其它投影区域的 DEM 数据,因此,我们制作经纬度数据以便使用这些数据 使用 linspace 创建等间距的经纬度数组。...transform_vector 给定向量场的 东西 南北 方向分量以及经纬度点,然后对向量进行旋转,使向量场在地图投影上以适当的方向显示。...如果为 False,输出数组那些边界外的值将被裁剪 masked 如果为True,新网格外的点将被 mask 或置为任意给定值 order 是插值方法 0 表示最邻近插值;1 表示双线性插值;3 表示三次样条插值

    1.4K10

    Basemap系列教程之基本函数

    当已知点的经纬度坐标时,使用Basemap实例计算点在地图坐标的位置 如果 latlon 参数设置为 True,x y 将被解释为以 度 为单位的经纬度坐标,这在以前的版本是不支持的。...plot 方法需要在地图坐标 x y 的位置,marker 及 color 1)默认情况下为marker 为 point [注1] 2)默认情况下 color 为 black(k) [注2]...即 data 矩阵每个点相对应的 x y 坐标点 linspace 是 numpy 的函数,可以在 起始点 终止点 之间创建 n 个元素。...在此例,地图坐标从 0 到 map.urcrnrx 或 map.urcrnry, data 数组 data.shape[1] 及 data.shape[0] 拥有相同的大小 meshgrid 是...数据使用的是 contourf 例子的数据 colormap 使用的是 contour 例子的colormap 注意: pcolor pcolormesh 非常相似。

    2.9K10

    WRF如何使用SRTM的3s高分辨率地形数据集

    合并多个tif 接着对 .tif进行连片,需要使用GDAL包。在python环境安装GDAL的教程网上很多,这里跳过。...是在win10上合并.tif文件,键入命令如下: python D:\Python\install\Scripts\gdal_merge.py -o Yunnan.tif -a_nodata -32768...在namelist.wps的geog_data_path目录下新建一个名为srtm_3s的文件夹,将处理好的这些瓦片数据index移到建好的文件夹下,准备后面进行调用。....hdr进行检查,其左上角的点经纬度值与known_lat = 30.000000、known_lon = 95.000000相一致。...数据访问处理 前面生成了地形数据描述文件(index),接着需要为geogrid.exe指出读取路径处理方法(插值等),对WPSgeogird/目录下的GEOGRID.TBL.ARW进行修改,找到对应的

    1K10

    基于 ArcGIS 的坐标系转换

    长半轴反扁率 本初子午线名其与格林威治子午线的偏移值 投影方法类型(横轴莫卡托) 投影参数列表(中央经线等) 一个单位的名称其米弧度单位的转换参数 轴线的名称和顺序 在预定义的权威坐标系的编码...GDALGDAL 是栅格矢量地理空间数据格式的翻译库,隶属于OSGeo(开源地理空间基金会)下的开源产品,它提供了任意栅格/矢量文件转换与处理。..., X为经度lon,Y为纬度lat double pointWgs84X = pointWgs84.getX(); double pointWgs84Y = pointWgs84.getY(); 环境配置...API 将自动在此目录查找以查找本机库(也可以手动指定,设置环境变量或放至应用根目录,请查阅官方sdk指南)。..., X为经度lon,Y为纬度lat double pointWgs84X = pointWgs84.getX(); double pointWgs84Y = pointWgs84

    2.6K20

    Python | 绘制影像地图(Basemap)

    NCL是UNIX/Linux系统中最常用的气象绘图工具,它在python中有PyNIOPyNGL两个包。目前NCL已经停止支持,被GeoCAT代替,但python的两个包还在。...# 在没有传递任何选项的 情况下,地图具有以经度 =0 纬度 = 0 为中心的 Plate Carrée 投影(等距圆柱投影)。...有两种方法 提供矩形映射投影区域的四个角的每一个的纬度经度值。 提供地图投影区域中心的lat/lon值以及地图投影坐标的 区域的宽度高度。...(color='coral',lake_color='aqua') # 设定经纬度坐标,图的左侧右侧显示维度,上侧下侧显示经度 parallels = np.arange(0.,81,10.) m.drawparallels...# 以下代码生成两个列表,包含文件每个地震的纬度经度: import os, csv fig_index = 0 filename = 'all_week.csv' lats, lons, magnitudes

    6.4K30

    Google Earth Engine ——ALOS World 3D - 30m (AW3D30) 是一个全球数字表面模型 (DSM) V3_2版本数据集

    2021年1月发布的3.2版本,是对高纬度地区的格式、辅助数据、处理方式等进行重新思考而创建的改进版本。高纬度地区对每个纬度区采用不同的像素间距。...此外,改进了检测过程异常值的方法。 注意:推荐的斜率计算方法见代码示例。...与 Earth Engine 的大多数 DEM 不同,这是一个图像集合,因为源文件具有多种分辨率,因此无法将它们镶嵌到单个资产中,因此斜率计算需要重新投影。...云、雪冰在处理过程自动识别并应用蒙版信息。然而,不匹配的点有时会特别存在于云、雪冰区周围(或边缘),这会导致最终 DSM 中出现一些高度错误。以下是一些数据值超出有效海拔范围的示例区域。...在北极的几个位置(79.83,-77.67)(69.54,-75.42)附近发现了不可能的高正值;在斐济大约 (-16.58, 179.44) (-18.96, 178.39);在尼泊尔 (28.50

    29310

    Python绘制气象实用地图(续)

    上一期,对Python绘制气象实用地图做了比较详细的介绍,尽管已经能够满足部分需求了,但是,在实际的应用需求,可能还是别的需求,那么,今天就手把手教大家如何绘制几个省份的白化等值线contour地图。...再选定坐标系方案,最好原来的shp文件一致。我在文末会提供相应的地图文件!...,s=120 ,color ="r",zorder=2) #经度:103.73 , 纬度:36.03 bill1 = 103.73 tip1 = 36.03 plt.scatter(bill1,...,s=120 ,color ="r" ,zorder=2) #经度:101.74 , 纬度:36.56 bill2 = 101.74 tip2 = 36.56 plt.scatter(bill2,...2.直接在终端使用python xxx.py运行; 需要注意的地方:很多人发现输出的图片是没有经纬度的坐标信息附加在网格线两端的,怎么调都还是出不来。

    5.2K65

    Redis 应用实践-地理位置

    本文将介绍Redis的地理位置数据结构以及如何在应用中使用它。我们将首先介绍地理位置数据结构的基本概念使用方法,然后介绍如何在Python应用中使用地理位置数据结构。...每个元素都是一个带有经度纬度信息的地理位置。地理位置集合的元素是按照它们的距离从近到远排序的。...在地理位置集合,可以使用以下命令进行操作:geoadd命令:向地理位置集合添加一个元素。geopos命令:获取地理位置集合中指定元素的经度纬度。...三、Python应用中使用地理位置数据结构下面我们将介绍如何在Python应用中使用Redis的地理位置数据结构。假设我们有一个城市的商家列表,每个商家都有一个唯一的ID、名称、经度纬度信息。...添加商家信息到地理位置集合首先,我们需要将商家信息添加到地理位置集合。我们可以使用Redis的geoadd命令将商家的经度纬度信息添加到地理位置集合

    89920

    地科Python数据分析案例 | 绘制黄土高原局部区域的沟壑覆盖度分析图

    ., 2020) 沟壑,作为地表过程的物质能量运移的通道,是最活跃的地貌单元,广泛分布于黄土高原地区。...数据集分为两级地貌类型单元:一级地貌单元为平原,丘陵,小起伏山地,起伏山地,大起伏山地极大起伏山地 6 类;次级地貌单元是在一级地貌单元基础上进一步划分的不同海拔高程级别的 23 种类型。...研究区GBLU数据 FABDEM 数据--FABDEM 数据是从哥白尼数字高程模型剥离了植被建筑物的全球开源 DEM 数据集,水平分辨率低至 1 角秒(赤道地区约 30 米)。...的gdal_calc工具 # expression的参数为A、B、C...... # input需要按照在expression与字母一一对应的顺序排列 def rasterCalculator(expression...参数说明: reclass_vals:重分类表达式,每三个一组,分别代表新赋值,重分类范围最小值范围最大值, 1;0;200;代表将 0-200 的值赋值为 1 outVec2ras = temp_dir

    87130

    Python气象绘图教程—(十九)剖面图

    提要中提到的这几种图形都是在气象上比较常用的,地形剖面主要研究地貌对降雨、气流的影响作用;纬度高度剖面图可以用来分析降雨的某些条件,湿层深厚、上干下湿、风向风速等;时间纬度图研究某个固定经度上的值随时间的演变...(这是大气环流一般自西向东相匹配的,所以时间经度图比较少见)。...文件为.nc格式,需要使用Python的netCDF4或者xarray库包来读取。...显然是不需要的,我们只想知道沿某个经度(或纬度)的地形变化如何,用ax.plot命令结合fill_between命令即可。而这两个命令,只需要传入一个一维的横坐标,一维的纵坐标即可。...在z[ 1 , 1 , : , 90:181 , 100 ]里,顺序分别表示years取第一个切片值;time取第一个切片值;层次level从上至下全部取完;纬度取第90到181个切片值;经度取第100

    13.5K75

    栅格数据裁剪

    参考资料: GDAL: gdalwarp GDAL: gdal_translate GDAL/OGR Python API 使用GDAL命令 GDAL提供了两个命令可以用于影像的裁剪:gdalwarp...gdal_translate,两个命令我更推荐使用后者。...使用Python代码 对于使用Python代码进行裁剪,我们有两种方法: 第一就是对命令行对应的借口直接进行调用。这个最直接最简单。...第二就是首先自己选择出需要裁剪的区域,然后计算裁剪区域的GeoTransform的系数,最后将投影GeoTransform系数赋值给裁剪子区域,写入输出文件。...我们知道GDAL中使用了六参数模型存储GeoTransform参数,如果进行矩形裁剪的话,只有GT(0)GT(3)参数会有变化,即需要重新计算裁剪以后的左上角坐标即可。

    2.4K50

    栅格数据裁剪

    参考资料: GDAL: gdalwarp GDAL: gdal_translate GDAL/OGR Python API 使用GDAL命令 GDAL提供了两个命令可以用于影像的裁剪:gdalwarp...gdal_translate,两个命令我更推荐使用后者。...使用Python代码 对于使用Python代码进行裁剪,我们有两种方法: 第一就是对命令行对应的借口直接进行调用。这个最直接最简单。...第二就是首先自己选择出需要裁剪的区域,然后计算裁剪区域的GeoTransform的系数,最后将投影GeoTransform系数赋值给裁剪子区域,写入输出文件。...我们知道GDAL中使用了六参数模型存储GeoTransform参数,如果进行矩形裁剪的话,只有GT(0)GT(3)参数会有变化,即需要重新计算裁剪以后的左上角坐标即可。

    1.5K21

    利用Python裁切tiff图像且读取tiff,shp文件的实例

    代码裁剪tiff影像图转换成png格式+裁剪Png图片 先来看一下需要转换的tiff原始图的信息,如下图所示。...tiff转换成png裁剪tiff的代码(opencv) import cv2 as cv import os """ 转换tiff格式为png + 横向裁剪tiff遥感影像图 """ def Convert_To_Png_AndCut...= os.path.join(dir + file) img = Image.open(this_dir) # 顺序打开某图片 width, hight = img.size w = 480 # 宽度.../RS_TiffDir/" # 遥感tiff影像所在路径 # 裁剪影像图 Convert_To_Png_AndCut(_path) 将转换成png后的图加载到软件(专业软件ENVI5.3)查看结果详细信息如下图所示...以上这篇利用Python裁切tiff图像且读取tiff,shp文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    3.5K30

    Basemap系列教程:绘图

    [注1] x y 是给定的网格点的位置,如果 latlon 参数为 True, 这些值将被假设为地理学坐标的点,否则视为 地图坐标系的点 u v 是以 knot 为单位的 左右 上下...,因此可每 4 个元素选择 1 个值 u v 被认为是地图投影坐标,而不是经纬度坐标。...plot(x, y, *args, **kwargs) x y 可以是表示投影单元下的marker位置的浮点数,或是绘制 lines 时的点列表 如果 latlon 设置为 True,x y 将被解释为经纬度...,因此可每 4 个元素选择 1 个值 u v 被认为是地图投影坐标,而不是经纬度坐标。...marker scatter(x, y, *args, **kwargs) x y 是要添加到地图上的点的列表 如果 latlon 设置为 True,x y 将被解释为经纬度

    4.2K10

    R-ggplot2+sf 核密度空间插值可视化绘制

    首先我们使用sf包将其转换成sf地图对象,操作代码如下: scatter_df_tro <- st_as_sf(scatter_df,coords = c("经度", "纬度"),crs = 4326)...,具体代码如下: point_dens<- sm.density(data.frame(scatter_df$`经度`, scatter_df$`纬度`),...知识点: sm.density()根据散点经纬度计算核密度估计结果 point_dens<- sm.density(data.frame(scatter_df$`经度`, scatter_df$`纬度`...可以看到,还是出现了和我们使用Python绘制的结果一样,都是没有对感兴趣区域(地图文件)进行裁剪出来,接下里我们使用sf包进行 “裁剪” 操作。...接下里,我将继续使用RPython(两个版本), 探索空间插值应用较为广泛的方法及对应的可视化结果,感受空间可视化带给我们的视觉盛宴!希望小伙伴们能够喜欢

    1.9K20
    领券