首页
学习
活动
专区
圈层
工具
发布

读取HDF或者NetCDF格式的栅格数据

我们首先使用gdal.Open()函数读取HDF数据,然后使用GetSubDatasets()方法取出HDF数据中存储的子数据集信息,该方法返回的结果是一个list,list的每个元素是一个tuple,...对于MODIS数据,tuple的第一个元素是子数据集的完整路径,所以我们取出该路径,然后使用gdal.Open()函数读取该子数据集....最后我们使用CreateCopy()方法将该子数据集存储为GeoTIFF格式的数据。 所以,总结一下,我们读取HDF或者NetCDF数据子集的时候,最主要的是取出想要处理的子数据集的完整路径。...然后就像读取普通GeoTIFF影像那样对子数据集进行读取就OK了. from osgeo import gdal root_ds = gdal.Open('example.hdf') # 返回结果是一个...) # 将数据集中的数据转为ndarray # 创建输出数据集,转为GeoTIFF进行写入 out_file = 'sr_band1.tif' driver = gdal.GetDriverByName

2.1K21

geotrellis使用(三十八)COG 写入和读取

前言 上一篇中简单介绍了 COG 的概念和 Geotrellis 中引入 COG 的原因及简单的原理,本文为大家介绍如何在 Geotrellis 中使用 COG 来写入和读取 GeoTIFF数据。...一、写入数据——ETL 1.1 实现方案 其实这与之前的普通 ETL 操作在概念上是相似的,都是将原始数据转换成系统能用的数据的过程,这是宽泛的 ETL 的定义。...cogLayerMetadata 是 COGLayerMetadata 对象,表示 COG 层的元数据信息,包含每层对应的瓦片范围等,这个与传统的元数据很接近,唯一不同的在于此处使用了 ZommRange...的概念(参见http://www.gdal.org/gdal_vrttut.html),其中很详细的讲述了 VRT 的格式和意义,简单来说 VRT 就是将多个 Tiff 文件合并成一个虚拟的 Tiff...三、总结 本文介绍了如何在 Geotrellis 中如何进行 COG 方式的 ETL 操作,实现了全新的数据写入和读取方式。

1.2K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    geotrellis使用(三十七)COG 基础介绍

    GDAL 官方 WIKI 定义如下: A cloud optimized GeoTIFF is a regular GeoTIFF file, aimed at being hosted on a HTTP...于是 COG 便应运而生,他以云端为工作流的中心而非本地,不需每次处理 GeoTIFF 文件时将整个文件下载下来,只需要下载需要处理的部分,并且尽量实现数据的云端处理。...简单来说不再需要 ETL 操作,或者说是另外一种的 ETL 操作——将普通的 GeoTIFF 文件转换为 COG 文件。...在转换的过程中也同样生成对应的元数据,这个元数据里描述的是如何找到x、y、z(SpatialKey 等)请求对应的数据,包括文件名称、存储位置、数据范围(HTTP Range)等,这样就可以通过此范围请求到此数据...三、总结 本文简单介绍了 COG 以及其在 Geotrellis 中的使用,此处仅是理论和概念探讨,会在后续文章中详细介绍如何在 Geotrellis 中使用 COG。

    2.5K140

    打开栅格数据的正确方式

    以一个简单例子说明如何打开栅格影像 下面的例子打开一副GeoTIFF影像,输出了影像的一些信息,然后遍历了所有波段,输出波段的一些信息 import gdal # 打开栅格数据集 ds = gdal.Open...6265.0) 数据类型:Int16 NoData值:-28672.0 统计值(最大值最小值):(21.0, 7267.0) 如何将Dataset转为Numpy的ndarray 当我们得到Band对象以后...,如果按照GDAL的C/C++接口惯例,我们可以使用WriteRaster()方法进行数据写入(C/C++接口是WriteBlock()),但是在Python中我们有很强大的ndarray对象,所以我们一般是将...下面介绍几种转换的方法: 在Dataset级别进行转换,转换结果是一个三维数组,第一个维度是波段数 在Band级别进行转换,转换的结果是一个二维数据 使用gdal_array模块中的LoadFile()...ds = None 输出结果: 数据的尺寸:(3, 4800, 4800) 波段大小:(4800, 4800) 波段大小:(4800, 4800) 波段大小:(4800, 4800) 使用gdal_array

    1.4K20

    GDAL模块介绍(远程协助安装)

    GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据转换库,它提供了对栅格和矢量地理空间数据格式的广泛支持。...GDAL的主要功能包括读取、写入和处理各种栅格和矢量地理数据格式。...对于栅格数据,GDAL支持约100种不同的格式,如GeoTIFF、JPEG、PNG等,能够方便地进行图像的读取、写入、转换以及各种处理操作。...除了基本的数据读写和处理功能外,GDAL还提供了丰富的投影和坐标转换功能,支持多种地理坐标系统和投影方式。这使得GDAL能够处理跨越不同地理区域的数据,并在不同坐标系之间进行转换和匹配。...总的来说,GDAL是一个功能强大的地理空间数据处理库,它提供了对栅格和矢量数据的广泛支持,为GIS领域的研究和应用提供了便捷的数据处理工具。

    11010

    使用 python 处理 nc 数据

    所以看到这里,各位应该已经明白了,可以直接使用 GDAL 处理 nc 数据,比如直接使用 gdalwarp 将某个 SUBDATASET 转成 GeoTiff 等等,此处暂且不表,各位只需要查阅一下 gdalwarp...当然第一种方式就是使用 netCDF4 处理完之后,使用此框架写入 GeoTiff,但是这样不太优雅,而且使用了两个框架,明显过于麻烦,我们直接使用此框架从读数据开始处理。...这样我们就可以继续将此数据使用 numpy 等框架进行处理,处理完之后更重要的是要写入 GeoTiff 中(直白的说就是添加空间信息)。...dst.write_band 将数据写入对应波段,当然此处也可以写入多个波段,根据计算结果而定,同样从 1 开始。...三、总结 本文简单介绍了 nc 数据的特点及如何使用 python 处理 nc 数据。

    3.8K50

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

    目前,Gazebo仅支持GDAL中支持的格式的栅格数据。 在Gazebo中支持DEM的主要动机是能够模拟逼真的地形。救援或农业应用可能有兴趣使用与真实世界匹配的模拟地形来测试他们的机器人行为。...#确保在您自己的安装路径中采购gazebo setup.sh $ source /usr/share/gazebo/setup.sh $ gazebo volcano.world 如何获得我感兴趣的区域的...全球土地覆盖设施文件采用GeoTiff格式,是最常见的可用DEM文件格式之一。 准备在Gazebo中使用的DEM数据 DEM数据通常以非常高的分辨率创建。...在Gazebo中使用多个DEM 虽然Gazebo不直接支持多个DEM,但GDAL有一套用于将一组DEM合并成一个DEM的实用程序。第一步是下载要合并的DEM集。...注意,补丁甚至可以彼此重叠; GDAL将无缝地合并它们。假设当前目录包含一组可以合并的Geotiff文件,请运行下一个命令。

    1.9K30

    如何不加锁地将数据并发写入Apache Hudi?

    因此仅使用纯 OCC,任何两个并发写入重叠数据都无法成功。因此为了解决冲突和某些表管理服务,我们需要锁,因为在任何时间点只有其中一个可以操作临界区。...因此我们采用锁提供程序来确保两个写入之间协调此类冲突解决和表管理服务。总结如下 1. 出于解决冲突的目的,我们不会让两个写入端成功写入重叠的数据。 2....注意到我们禁用了表服务和元数据表,并将操作类型设置为"bulk_insert"。因此写入端2所做的就是将新数据摄取到表中,而无需担心任何表服务。...或者我们可以将操作类型保留为"bulk_insert",但使用写入端1启用聚簇来合并小文件,如下所示: option("hoodie.datasource.write.operation","bulk_insert...为两个并发 Spark 写入端尝试上述一组配置,并使用清理和归档设置进行了 100 多次提交测试。还进行故障演练并且事物完好无损。输入数据与两个写入端从 Hudi 读取的快照相匹配。

    75830

    Python | GDAL处理影像

    >无符号整数 概视图:递减分辨率,用于大数据快速显示 有损压缩与无损压缩:地理科学数据应使用无损压缩 GDAL数据集的基本结构 栅格数据读取 driver.Create(filename, xsize...This will be overwritten if it exists. # 使用驱动对象来创建数据集,因为使用的是GeoTIFF驱动,无论给它任何扩展名,输出的文件都是GeoTIFF gtiff_driver...out_ds写入数据 # 先取出想要写入的波段 # 再将numpy数组in_data的数据写入 in_data = in_band.ReadAsArray() out_band = out_ds.GetRasterBand...,这个时候才将内存中的对象写入硬盘 # This will effectively close the file and flush data to disk. del out_ds # 打开QGIS,...2.X以上版本:inv_gt = gdal.InvGeoTransform(gt) GDAL 1.X版本:success, inv_gt = gdal.InvGeoTransform(gt) 使用逆变换将坐标转换为数组偏移量

    4.9K31

    如何使用Flume采集Kafka数据写入HBase

    Flume进Hive表》、《如何使用Flume准实时建立Solr的全文索引》、《如何在Kerberos环境使用Flume采集Kafka数据并写入HDFS》和《如何使用Flume采集Kafka数据写入Kudu...》,本篇文章Fayson主要介绍在非Kerberos的CDH集群中使用Flume采集Kafka数据写入HBase。...Event的Body部分当做完整的一列写入HBase RegexHbaseEventSerializer:根据正则表达式将Event Body拆分到不同的列 写正则表达式Fayson不擅长,对于复杂结构数据时正则表达式的复杂度可想而知且不便于维护..., e); } return actions; } } (可左右滑动) 7.将开发好的代码使用mvn命令打包 mvn clean package 将打包好的flume-sink...可以看到数据已写入到HBase的fayson_ods_deal_daily表,查看表总数与发送Kafka数量一致 ?

    4.2K20

    Flink教程-使用sql将流式数据写入文件系统

    滚动策略 分区提交 分区提交触发器 分区时间的抽取 分区提交策略 完整示例 定义实体类 自定义source 写入file flink提供了一个file system connector,可以使用DDL创建一个...table,然后使用sql的方法写入数据,支持的写入格式包括json、csv、avro、parquet、orc。...'connector'='filesystem', 'path'='file:///tmp/abc', 'format'='orc' ); 下面我们简单的介绍一下相关的概念和如何使用...对于写入行格式的数据,比如json、csv,主要是靠sink.rolling-policy.file-size、sink.rolling-policy.rollover-interval,也就是文件的大小和时间来控制写入数据的滚动策略...file 通过sql的ddl创建一个最简单的基于process time的table,然后写入数据.

    3.2K20

    Geoserver扩展以支持Erdas Image数据的服务发布

    概述: Geoserver默认支持的栅格数据源比较少,包括ArcGrid,GeoTiff,WorldImage,ImageMosaic等,是不支持Erdas Img格式的栅格数据源的,因此,为了能够让...Geoserver支持发布Erdas Img格式的数据源,需要用GDAL的插件对Geoserver进行扩展,本文讲述如何在Geoserver中配置并支持Erdas Img格式的数据源。...geoserver默认支持的栅格数据源 配置步骤 1、相关jar文件的下载与拷贝 下载Geoserver对应版本的gdal-plugin,并将之拷贝到Geoserver的安装路径.....为方便大家使用,我下载了比较新的版本到我的百度网盘,其中: Geoserver2.8.1    链接:http://pan.baidu.com/s/1hshOdaG 密码:yev9 geoserver-...同样,我也将下载的东西共享了,请根据自己的需要下载,链接为:链接:http://pan.baidu.com/s/1geL53Pp 密码:0xq7 完成以上的配置,重启Geoserver,查看可用的数据源如果如下图所示

    2.9K20

    使用GDAL读取Sentinel数据

    数据的读取,我这里使用Sentinel-2光学卫星数据给出使用GDAL工具对其进行读取的方法。...GDAL将Sentinel数据看做一个数据集(概念上类似HDF格式的数据集),里面包含了很多子数据文件。所以,对于Sentinel数据的读取就和对于HDF数据的读取是相同的啦。...对于HDF或者NetCDF格式数据的读取参考我的博文:读取HDF或者NetCDF格式的栅格数据 使用GDAL命令行读取Sentinel数据的元数据信息 直接使用gdalinfo [文件名]可以查看Sentinel...下图显示的数据子集中包含四个波段的数据(红,绿,蓝,近红外) image.png 使用GDAL命令行工具将Sentinel数据转为GeoTIFF格式 转换是针对具体的子数据集而言的,所以使用gdal_translate...[sentinel subdataset full name] [output filename]命令进行 下面的例子将包含红绿蓝近红外波段的数据子集转为GeoTIFF影像 gdal_translate

    2.1K00

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

    Topography Mission)的DEM数据,这个数据覆盖了全球陆地,在美国本地分辨率为1s,其他地区为3s(约90m),因此使用这个更高分辨率数据来测试一下。...合并多个tif 接着对 .tif进行连片,需要使用GDAL包。在python环境安装GDAL的教程网上很多,这里跳过。...在namelist.wps中的geog_data_path目录下新建一个名为srtm_3s的文件夹,将处理好的这些瓦片数据和index移到建好的文件夹下,准备后面进行调用。...数据对比 在1km的网格分辨率上,使用srtm的3s数据对比效果并不明显,在更高的空间分辨率上区别更为显著,这里对比了333m和111m分辨率。...[2] WRF使用3s(90m)分辨率的地形数据 (https://cloud.tencent.com/developer/article/1618268) [3] The gdal_merge utility

    1.7K10

    cesium使用tif切片的几种方法

    GDAL工具介绍GDAL是一个用于栅格和矢量地理空间数据格式的转换库。我们主要使用其中的一个工具gdal2tiles,这是一个生成包含TMS瓦片、KML文件和简单网页查看器的目录的工具。2....GDAL工具安装进入网址根据不同系统查看这里以macos为例,直接使用brew安装brew install gdal3....插件核心基于geotiff.js,从各种不同的(Geo) TIFF 文件类型读取(地理空间)元数据和原始数组数据。2....如果遇到坐标不兼容问题,可以使用proj4将tif坐标系转换成EPSG:4326。...使用geoserver基于tif提供wms服务1)添加新的工作空间例如起名test,url可以暂时随便写2)添加新的存储仓库数据源选择GeoTIFF - Tagged Image File Format

    3K20

    EasyNVR如何将数据写入内存,实现定时同步到数据库?

    EasyNVR是基于RTSP/Onvif协议接入的安防视频云服务平台,它可以将前端设备进行快速便捷地接入、采集、视频转码、处理及分发,分发的视频流包括:RTSP、RTMP、HTTP-FLV、WS-FLV...今天我们来分享下,在EasyNVR中,如何将数据写入内存,实现定时同步到数据库?在项目现场中,用户使用EasyNVR接入大批量的摄像头后,发现运行速度变得很慢,并且出现磁盘读写不够的情况。...遇到这种情况有两种解决办法:1)更换为MySQL数据库EasyNVR平台默认使用的是sqlite数据库,在小接入的场景下可以满足用户的使用需求,若接入量一旦过大,就会出现数据库负载过大、效率跟不上的情况...,所以这时,更换为MySQL数据库会大大缓解磁盘压力。...2)将数据写入内存如果用户已经集成过,并且数据库数据不能修改,那么在这种情况下,可以将数据先写入内存,然后设置定时同步,也能解决运行缓慢的问题。

    69620

    遥感影像的镶嵌(初试)

    在做PM2.5的机器学习的时候,不同的aod数据的利用率问题就显得十分重要,能多要一个数据都显得弥足珍贵,而几个类型的数据中,modis3km的数据较为杂乱,因为他是5分钟的采样时间,也就是一天会产生大于...24*60/5的数据量,具体怎么解释我现在也迷迷糊糊,过境数据每次位置都有不同,一个矩形的范围内,最多可以有好几个影像的范围。...所以数据的镶嵌,拼接就比较重要,gdal有一个镶嵌的merged,py文件,调用起来暂时没想通怎么用python调用,应该比较好用才是。...参照网上的一些方法,利用行列号把数据写入新的栅格,但是出现的偏差很大,因为缺少了投影计算的步骤,所以目前的代码应该还不能用。后期新增这部分应该也算是创新吧。...outDataRaster.FlushCache() ## remove from memory...important del outDataRaster ## delete the data (not the actual geotiff

    81730
    领券