【数据分享】STRM 90米分辨率DEM地形数据(无需转发/全国/分省/分市)

地形数据是我们在各种设计、研究中都经常使用的基础数据!之前我们分享过12.5米精度的DEM地形数据、30米精度的DEM地形数据(均可查看之前的文章获悉详情)。

本次给大家带来的是90米分辨率的DEM地形数据——STRM 90m高程数据!该数据是由美国太空总署(NASA)和国防部国家测绘局(NIMA)联合测量的。官网提供的原始数据为全球范围的数据,划分为1000多个网格。我们下载了涉及中国范围的网格,并拼接为一张图;然后按照国界范围提取出全国范围的数据,按照省界提取出全国各个省份的数据,按照市界提取出全国各个城市的数据,方便大家使用!

如果想要全国范围的数据,请按照文末的转发要求获取!以下为数据的详细介绍:

01 数据预览

全国范围的数据

首先我们先来看一下全国范围的数据,我们会提供两种数据:

①空间范围大于中国国界的tif格式数据

由于原始数据将全国范围划分为1000多个网格,我们将涉及中国区域的网络进行拼接,因此范围大于中国国界:

②空间范围等于中国国界的tif格式数据

对上述拼接网格而形成的大于国界范围的数据进行裁剪,我们借助于从数读城事公众号获取的行政区划数据,严格按照国界提取出全国范围的数据:

全省范围的数据

对于每个省份,我们会提供两大文件:

①全省范围的地形

我们以山东省为例来预览一下,我们同样依据山东全省范围边界对地形进行了裁剪,形成了和山东省边界范围一致的地形!

②省内各市的地形

我们以山东省为例,除了提供全省范围的地形,我们还提供了山东省16个地级市每个城市的地形,我们以潍坊市为例来看看:

02 数据详情

数据介绍:

SRTM(Shuttle Radar Topography Mission),由美国太空总署(NASA)和国家测绘局(NIMA)联合测量。2000年2月11日,美国发射的“奋进”号飞机上搭载SRTM系统,共计进行了222小时23分钟的数据采集工作,获取北纬60度至南纬60度之间总面积超过1.19亿平方公里的雷达影像数据,覆盖地球80%以上的陆地表面。SRTM系统获取的雷达影像的数据量约9.8万亿字节,经过两年多的数据处理,制成了数字地形高程模型(DEM),即现在的SRTM地形产品数据。此数据产品2003年开始公开发布,经历多修订,目前的数据修订版本为V4.1版本。SRTM地形数据按精度可以分为SRTM1和SRTM3,分别对应的分辨率精度为30米和90米数据(本次分享数据为90米分辨率的数据)。

地理坐标系:

GCS_WGS_1984

数据格式:

.tif格式

空间分辨率:

90m

官方下载链接:

http://srtm.csi.cgiar.org/srtmdata/

文末下方是我们的公众号名片,我们将定期介绍各类城市数据以及数据的可视化和分析技术,有关STRM 90米分辨率DEM地形数据,欢迎大家多多关注我们进行了解!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,可以使用zlib库来实现数据压缩。下面是一个简单的压缩数据的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <zlib.h> #define CHUNK 16384 int compress_data(char *src, int src_len, char *dst, int dst_len) { z_stream strm; int ret; /* 初始化z_stream结构体 */ memset(&strm, 0, sizeof(z_stream)); strm.zalloc = Z_NULL; strm.zfree = Z_NULL; strm.opaque = Z_NULL; strm.avail_in = src_len; /* 待压缩数据长度 */ strm.next_in = (Bytef *)src; /* 待压缩数据指针 */ strm.avail_out = dst_len; /* 压缩后数据长度 */ strm.next_out = (Bytef *)dst; /* 压缩后数据指针 */ /* 初始化压缩环境 */ ret = deflateInit(&strm, Z_DEFAULT_COMPRESSION); if (ret != Z_OK) { return ret; } /* 压缩数据 */ do { /* 压缩数据块 */ ret = deflate(&strm, Z_FINISH); if (ret == Z_STREAM_ERROR) { return ret; } /* 如果输出缓冲区已满,则需要扩大输出缓冲区 */ if (strm.avail_out == 0) { dst_len *= 2; dst = (char *)realloc(dst, dst_len); if (dst == NULL) { return Z_MEM_ERROR; } strm.next_out = (Bytef *)(dst + dst_len / 2); strm.avail_out = dst_len / 2; } } while (ret != Z_STREAM_END); /* 清理压缩环境 */ deflateEnd(&strm); /* 返回压缩后数据长度 */ return dst_len - strm.avail_out; } int main(int argc, char *argv[]) { char *src = "Hello, World!"; int src_len = strlen(src); char *dst = (char *)malloc(src_len * 2); int dst_len = src_len * 2; if (dst == NULL) { printf("Error: malloc failed.\n"); return -1; } /* 压缩数据 */ int ret = compress_data(src, src_len, dst, dst_len); if (ret < 0) { printf("Error: compress_data failed with error code %d.\n", ret); free(dst); return -1; } /* 输出压缩后数据 */ printf("Compressed data: "); for (int i = 0; i < ret; i++) { printf("%02X ", dst[i]); } printf("\n"); free(dst); return 0; } ``` 在这个示例代码中,我们使用了zlib库中的deflate函数来压缩数据。函数的参数说明如下: - `strm`:z_stream结构体,用于保存压缩环境和压缩参数。 - `src`:待压缩数据的指针。 - `src_len`:待压缩数据的长度。 - `dst`:压缩后数据的指针。 - `dst_len`:压缩后数据的长度。 该函数的返回值为压缩后数据的长度,如果返回值为负数,则表示压缩失败。在压缩数据时,我们需要先初始化z_stream结构体,然后调用deflate函数进行压缩。如果输出缓冲区已满,需要扩大输出缓冲区。最后,我们需要调用deflateEnd函数清理压缩环境。 需要注意的是,压缩后的数据可能会比原始数据更长,因此需要预留足够的输出缓冲区。在本例中,我们将输出缓冲区的大小设置为原始数据大小的两倍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值