主要内容

本页采用了机器翻译。点击此处可查看英文原文。

readgeoraster

读取地理空间栅格数据文件

说明

[A,R] = readgeoraster(filename) 通过读取地理或投影栅格数据创建数组,数据源文件格式包括 GeoTIFF、Esri 二进制网格、GRIB 或 DTED 等。输出参数 R 包含数组的空间参考信息。有关支持格式的完整列表,请参阅 支持的格式

示例

[A,R] = readgeoraster(___,Name=Value) 使用一个或多个名称-值参数指定选项。

示例

[___,cmap] = readgeoraster(___) 还返回 A 的颜色图。

示例

示例

全部折叠

读取波士顿的 GeoTIFF 图像,将其作为数组和地图单元参考对象。该数组大小为 2881×4481×3,分别指定了图像的红、绿、蓝三色分量。使用 mapshow 函数显示图像。

[A,R] = readgeoraster("boston.tif");
mapshow(A,R)

The data used in this example includes material copyrighted by GeoEye, all rights reserved.

读取并显示夏威夷欧胡岛的土地覆盖分类图。

首先,将土地覆盖数据读取为数组、地图单元参考对象和颜色图。A 的元素用于索引颜色图。颜色图的每一行都指定了单一颜色的红、绿、蓝三原色分量。然后,显示土地覆盖数据。

[A,R,cmap] = readgeoraster("oahu_landcover.img");
mapshow(A,cmap,R)

Figure contains an axes object. The axes object contains an object of type image.

本示例所用数据由美国国家海洋和大气管理局 (NOAA) 提供。

读取并显示科罗拉多州南博尔德峰周边区域的高程数据。

将高程数据读取为数组和地理坐标参考对象。要将数据以曲面形式显示,geoshow 函数需要 doublesingle 类型的数据。在此情况下,通过将输出类型指定为"double""来保持精度。

[A,R] = readgeoraster("n39_w106_3arc_v2.dt1",OutputType="double");

通过指定数据的纬度和经度范围来创建地图。然后,使用 geoshow 函数将数据以曲面形式显示。使用 demcmap 函数为高程数据应用合适的颜色图。

latlim = R.LatitudeLimits;
lonlim = R.LongitudeLimits;
usamap(latlim,lonlim)
geoshow(A,R,DisplayType="surface")
demcmap(A)

Figure contains an axes object. The hidden axes object contains 10 objects of type patch, surface, line, text.

本示例所用高程数据由美国地质调查局提供。

自 R2023b 起

GRIB 文件通常采用多波段存储数据。若您不确定应读取哪些频段,可查询 GRIB 文件中存储的元数据。

读取并显示 GRIB 文件中的一条数据带。该文件包含多年度的海冰浓度数据 [1][2],文件中的每条数据带对应不同年份。

通过创建一个 RasterInfo 对象来获取 GRIB 文件的信息。通过访问 RasterInfo 对象的 Metadata 属性获取元数据。

info = georasterinfo("seaice.grib");
metadata = info.Metadata;

RasterInfo 对象使用表格存储 GRIB 元数据,其中表格的每行对应文件中的一条数据带。找到包含 2016 年数据的带。

yrs = year(metadata.ReferenceTime);
band = find(yrs == 2016);

使用 readgeoraster 函数从带状区域读取数据。将浓度转换为百分比。

[A,R] = readgeoraster("seaice.grib",Bands=band);
A = A * 100;

将数据作为表面显示在基于 axesm 的地图上。更改颜色图并添加带标签的颜色栏。

figure
worldmap(A,R)
mlabel off
plabel off
geoshow(A,R,DisplayType="surface")

colormap abyss
c = colorbar;
c.Label.String = "Sea ice concentration (%)";

Figure contains an axes object. The hidden axes object contains 4 objects of type patch, surface, line.

[1] Hersbach, H., B. Bell, P. Berrisford, G. Biavati, A. Horányi, J. Muñoz Sabater, J. Nicolas, et al."ERA5 Hourly Data on Single Levels from 1940 to Present."Copernicus Climate Change Service (C3S) Climate Data Store (CDS), 2023.Accessed May 22, 2023. https://doi.org/10.24381/cds.adbb2d47.

[2] Neither the European Commission nor ECMWF is responsible for any use that may be made of the Copernicus information or data it contains.

输入参数

全部折叠

要读取的文件名,指定为字符向量或字符串标量。filename 的形式取决于文件所在的位置。

  • 如果文件位于当前文件夹或 MATLAB® 路径下的某个文件夹中,则指定文件名,例如 "myFile.dem"

  • 如果文件不在当前文件夹或位于 MATLAB 路径下的文件夹中,则需指定完整路径或相对路径名称,例如 "C:\myfolder\myFile.tif""dataDir\myFile.dat"

有关支持的文件格式列表,请参阅 支持的格式

数据类型: char | string

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: [A,R] = readgeoraster(filename,OutputType="double",Bands=1:2) 指定了 A 的数据值以及要读取的波段。

A 的数据类型,指定为包含以下值之一的字符向量或字符串标量:"native", "single", "double", "int8" (自 R2024b 起), "int16", "int32", "int64" (自 R2024b 起), "uint8", "uint16", "uint32""uint64" (自 R2024b 起)"logical"

OutputType 的默认值为 "native"。对于大多数格式,"native" 会使用文件中嵌入的原生数据类型返回 A。对于 GRIB 文件,"native" 使用 double 数据类型返回 A

使用除 "native" 以外的数据类型可能会导致精度损失。

数据类型: char | string

要读取的频段,指定为 "all"、一个正整数或一个正整数向量。例如,若指定值为 3,readgeoraster 将读取文件中的第三个频段。乐队按指定顺序返回。

Bands 的默认值为 "all",其中 readgeoraster 会读取文件中的所有频段。

R 的坐标系类型,指定为以下值之一:

  • "auto" - 返回由文件内容决定的栅格参考对象 R

  • "geographic" - 将 R 作为地理单元或地理坐标参考对象返回。

  • "planar" - 将 R 作为映射单元或发布参考对象返回。

当您的数据不包含投影信息时,请指定坐标系类型。

自 R2025a 起

标准化缺失数据,指定为数值型或逻辑型 1(true) 或 0(false)。

  • true - 当文件指定了缺失数据标记符,且函数使用 singledouble 数据类型创建 A 时,将匹配缺失数据标记符的值替换为 NaN 值。有关缺失数据指示符的更多信息,请参阅 RasterInfo 对象的 MissingDataIndicator 属性。

  • false - 不要替换与缺失数据标记匹配的值。

在 R2025a 之前的版本中: 当 A 的类型为 singledouble 时,可使用 georasterinfostandardizeMissing 函数替换缺失数据。

[A,R] = readgeoraster(filename,OutputType="double");
info = georasterinfo(filename);
m = info.MissingDataIndicator;
A = standardizeMissing(A,m);

输出参量

全部折叠

地理参考图像或数据网格,以 M×NM×N×P 数值数组形式返回。

对于大多数格式,A 的默认数据类型与嵌入在 filename 中的本机数据类型相匹配。对于 GRIB 文件,默认数据类型 Adouble。使用 OutputType 名称-值参数指定数据类型。

无论数据如何编码,第一行 A 代表最北端数据,最后一行 A 代表最南端数据。

空间参考对象 A,返回值为 GeographicCellsReference 对象、GeographicPostingsReference 对象、MapCellsReference 对象或 MapPostingsReference 对象。R 的值取决于 filename 中的数据:

  • 如果 filename 中的数据参考地理坐标系,则 R 是一个 GeographicCellsReference 对象或 GeographicPostingsReference 对象。

  • 如果 filename 中的数据参考自投影坐标系,则 RMapCellsReference 对象或 MapPostingsReference 对象。

如果文件中包含的信息不足以确定数据是投影数据还是地理数据,则 R 是一个 MapCellsReferenceMapPostingsReference 对象。如果文件中不包含有效的空间参考信息,则 R 为空。您可以通过使用 CoordinateSystemType 名称-值参数,将空间参考指定为 "geographic""planar"

与索引图像关联的颜色图,以 n×3 数值矩阵形式返回,其值范围为 [0,1]。cmap 的每行都是一个三元素 RGB 三元组,用于指定颜色图中单一颜色的红、绿、蓝三色分量。除非 A 是索引图像,否则 cmap 的值为空。

详细信息

全部折叠

提示

  • 某些函数需要输入类型为 singledouble 的参数,例如用于显示曲面的 geoshow 函数。要将 readgeoraster 的输出用于这些函数,请通过 OutputType 名称-值参数将输出类型指定为 "single""double"

  • 无论文件格式如何,readgeoraster 返回的数组列从北侧开始,且参考对象的 ColumnsStartFrom 属性值为 "north"

版本历史记录

在 R2020a 中推出

全部展开