导航:首页 > 数据处理 > 地理空间数据云是什么

地理空间数据云是什么

发布时间:2024-08-21 01:01:21

1. 如何在地质云下载钻孔数据

1、需要在平台注册一个账号,在下载数据之前需求清楚你需要的数据是什么。
2、通过“数据检索”菜单进行数据选择,在检索结果列表可以选择需要下载的数据。
3、数据检索的方式有多种(基于空间位置、经纬度等),从平台获取的数据基本上都是1级产品,经过正射校正和云、雪等预处理的产品。
4、获取到这些数据后可以通过一些遥感软件对影像的信息进行解译,计算最终获得需要的成果。
5、不清楚需要的数据,可以通过“数据资源”菜单查看平台提供的所有数据资源,在选择出所需的数据。地理空间数据云平台是一个公共的遥感数据产品获取平台。

2. 怎么在中国地理空间数据云找梅州市行政边界

今天我们以高德地图为例,讲解一下如何获取全国省市区行政边界数据。

高德开放平台Web服务API

https://lbs.amap.com/

依次点击开发支持–Web服务–Web服务API,即可进入到高德开放平台Web服务API页面。

在这里插入图片描述

可以发现,官方已开放了行政区域查询的接口。

在这里插入图片描述

点击查看该接口的详细介绍:

在这里插入图片描述
其实就是先申请Key,然后构造Http请求,发送请求解析返回数据即可。

同时接口文档提到,该接口只能返回国、省、市、区的polyline(边界点集合),不支持街道级别,但已经满足我们的需求了。

首先分析下接口请求参数:

在这里插入图片描述
有4点值得关注:

keywords支持行政区名称、citycode、adcode这3种格式,行政区名称可能存在重复(尤其level是县/区时),而citycode只有level在市或市以下才有,只有adcode可以唯一指定某个行政区,所以检索的时候,我们使用adcode作为keywords传入;
subdistrict可以指定子级行政区的嵌套层数;
当最外层的districts超过20个元素时,需要配合page参数来获取全部元素;
只有extensions配置为all时,接口才会返回我们需要的区域边界数据。
想要一次性采集全国省市区行政边界数据的话,第1步肯定是先设法拿到省、市、区的列表,然后逐个遍历。

我们可以设置keywords为"中华人民共和国",然后将subdistrict设置为3,下3层(省、市、区)的子行政区信息就会返回。

这样,我们发送1次请求就可以拿到省、市、区的列表了。

接着,我们将subdistrict调整为1(减少数据冗余),依次遍历各个行政区域即可。

实现代码如下:

# -*- coding:utf-8 -*-

import requests
import time
import mongo_util #自行封装的操作mongodb的工具类

def get_district_info(key, col, time_delay, headers={}):
request_url = 'https://restapi.amap.com/v3/config/district'
country_name = '中华人民共和国'
params = {
'subdistrict':'3',
'extensions':'all',
'key':key,
'output':'json',
'keywords':country_name,
}
# 设置subdistrict为3,1次请求获取到国、省、市、区的信息
country_res = requests.get(url=request_url, headers=headers, params=params).json()
if country_res['status'] != "1":
print("调用高德地图Web API失败!")
return
country = country_res['districts'][0]
col.insert_one(country)
print(f'{country_name}数据插入成功!')
params['subdistrict'] = '1'
# 遍历省
provinces = country['districts']
for province in provinces:
province_name = province['name']
params['keywords'] = province['adcode']
prov_res = requests.get(url=request_url, headers=headers, params=params).json()
if prov_res['status'] == "0":
print(f'{country_name}-{province_name}数据获取失败!')
continue
col.insert_one(prov_res['districts'][0])
print(f'{country_name}-{province_name}数据插入成功!')
time.sleep(time_delay)
# 遍历市
cities = province['districts']
if len(cities) == 0:
continue
for city in cities:
city_name = city['name']
params['keywords'] = city['adcode']
city_res = requests.get(url=request_url, headers=headers, params=params).json()
if city_res['status'] == "0":
print(f'{country_name}-{province_name}-{city_name}数据获取失败!')
continue
col.insert_one(city_res['districts'][0])
print(f'{country_name}-{province_name}-{city_name}数据插入成功!')
time.sleep(time_delay)
# 遍历区
districts = city['districts']
if len(districts) == 0:
continue
for district in districts:
distinct_name = district['name']
params['keywords'] = district['adcode']
distinct_res = requests.get(url=request_url, headers=headers, params=params).json()
if distinct_res['status'] == "0":
print(f'{country_name}-{province_name}-{city_name}-{distinct_name}数据获取失败!')
continue
col.insert_one(distinct_res['districts'][0])
print(f'{country_name}-{province_name}-{city_name}-{distinct_name}数据插入成功!')
time.sleep(time_delay)
# 主函数
if __name__ == '__main__':
key = "******"
# 接口请求之间的间隔
time_delay = 0.01
db_name = 'web_map'
col_name = 'distinct'
# MongoDB数据库所在的服务器
host = '******'
port = 27017
# 获取mongodb的表句柄
col = mongo_util.get_col(db_name, col_name, host, port)
# 获取全国各级行政区的数据
get_district_info(key, col, time_delay)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
因为接口返回的是JSON类型的嵌套数据,所以这里选择MongoDB作为存储组件。

为了防止爬取过程中,进程宕掉导致已请求的数据丢失,可以拿到1条数据就入库1条数据。

避免数据全都在内存中,执行批量插入的过程中异常退出,又得重复请求,但每个账号的天请求次数是有限制的。

同时,各个接口均有QPS阈值,所以我们通过time_delay参数来控制数据采集的频率。

但是高德开方平台Web服务API有天调用次数的限制,如果想获取大量数据,可能需要多个账号或者分多天进行请求,有没有更好的方法呢?

带着这样的疑问,我又看了看高德地图其他的API版块。

JS API

浏览高德开放平台的JS API示例,里面也有个行政区边界查询的Demo。

https://lbs.amap.com/demo/jsapi-v2/example/district-search/draw-district-boundaries

在这里插入图片描述

打开浏览器的"开发者工具",我们抓包一下哪个请求是用来获取行政区域数据的。

在这里插入图片描述

在这里插入图片描述
哈哈哈,其实跟开放的Web API接口地址是一致的,而且通过分析接口请求,我们直接可以拿到key。

也就是说,不需要用自己高德账号里生成的key值了。

使用这个key构建接口请求,悲伤的发现,接口返回异常。

在这里插入图片描述
说明该接口其实还是跟开放的Web API接口还是有区别的,一般体现在请求参数和Headers上。

我们把浏览器抓取到的请求参数和Headers配置原封不动的拷贝过来,再次构建接口请求,此时接口正常返回。

但请求参数里的csid是个啥东西,而且不同行政区域请求里的csid还不同。

在这里插入图片描述
尝试着去掉该参数,然后构建接口请求,发现接口仍然可以正常返回,说明该参数是可选参数,而且不是检索字段。

按照这个思路,我们逐步尝试去掉其他请求参数和Headers里的配置。

发现该接口与开放的Web API接口相比,本质仅有2点不同:

请求参数
请求参数需要额外指定: s=rsv3

Headers
需要添加如下Headers:

在这里插入图片描述
调整原来的代码:

在params里增加s配置
params = {
'subdistrict':'3',
'extensions':'all',
'key':key,
'output':'json',
'keywords':country_name,
's':'rsv3' # 该项配置是关键配置
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
在发送请求的时候传入headers
headers = {
'Host': 'restapi.amap.com',
'Referer': 'https://lbs.amap.com/'
}
# 获取mongodb的表句柄
col = mongo_util.get_col(db_name, col_name, host, port)
# 获取全国各级行政区的数据
get_district_info(key, col, time_delay, headers)
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
该种方法的优点是绕开了第1种方法的日调用次数限制(高德是否有额外的反爬策略,待验证)。

AMAP Service

其实前面headrs的Referer配置就提醒我了,是不是高德地图在https://lbs.amap.com/这个地址下也有功能相同的接口。

所以就在高德平台上随意点了点,逛了逛,还真就发现了,哈哈哈。

在这里插入图片描述
与上面两个接口不同的是,这个接口是POST请求,而且竟然不需要指定key,这也太爽了吧,哈哈哈。

接着看一下请求参数:

在这里插入图片描述
参数和开放平台Web服务API的完全一致。

最后看一下表单数据:

在这里插入图片描述

显然表单数据是用来配置请求哪个接口的,这里的config/district代表的就是行政区域查询。

代码调整起来也不难:

# 调整请求的url
request_url = 'https://lbs.amap.com/service/api/restapi'
# 将所有的请求调整为POST,并传入表单数据,例如:
body = {
"type": "config/district",
"version": "v3"
}
country_res = requests.post(url=request_url, params=params, data=body).json()
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
该接口跟第2种接口相比,更近一步,连key值都省略了。

总结

本文介绍了3种基于高德地图获取全国省市区行政

3. 地理空间数据云下载需要用户花钱么

不需要的。
地理空间数据云是国内能免费下载数据较全的一个网站,提供LANDSAT系列数据、MODIS系列数据、DEM数字高程数据、EO-1数据等。比较有特色的该网站那还提供数据众包服务。
地理空间数据,定义:面向主题的、集成的、动态更新的、持久的空间数据集合。
所属学科:地理学(一级学科),地理信息系统(二级学科)空间数据:是数据的一种特殊类型。它是指凡是带有空间坐标的数据。
地理空间数据:是空间数据的一种特殊类型。它是指带有地理坐标的数据,包括资源、环境、经济和社会等领域的一切带有地理坐标的数据,是地理实体的空间特征和属性特征的数字描述。

4. 地理空间数据云打开文件夹为空

这样的状况下,应该上下载失败导致的,建议你重新下载,可以去地理空间数据云下载。
地理空间数据云(GSCloud),由中科院计算机网络信息中心于2008年创立,是国际先进,国内最具影响力的地学大数据平台。
平台紧密围绕科研人员在地理空间数据搜索、获取、存储、分析和可视化等方面的迫切需求,利用云计算、大数据等新一代信息技术,自主研发了可靠的大规模地理空间数据实时分析引擎,实现了亿级元数据高效管理和PB级实体数据分析服务。平台不断创新服务模式,成功实现海量数据实时在线分析服务、在线众包创新服务及在线协同标注服务等。

阅读全文

与地理空间数据云是什么相关的资料

热点内容
交易平台哪个最便宜 浏览:360
外倾角数据正负35怎么计算 浏览:610
理财产品的t0模式是什么意思 浏览:389
哪个市场最便宜的东西 浏览:432
你想要了解哪些信息英语翻译 浏览:757
如何在防城港房产网发布信息 浏览:454
工控产品行业网站有哪些 浏览:770
时光代理人怎么没资源 浏览:812
现在游戏币交易最多的是哪个游戏 浏览:35
oppo手机密码忘记怎么解锁保留数据 浏览:42
钉钉打卡如何创建市场部群 浏览:780
法院人事代理什么意思 浏览:24
代理家具哪里好卖 浏览:118
债权交易理财怎么样 浏览:413
手机流氓程序如何删除 浏览:387
t型数据线的正负怎么分辨 浏览:406
正宗奶茶技术一般多少钱 浏览:585
吴淞水产交易市场搬到哪里去了 浏览:749
法币交易卖出最低要多少 浏览:845
中学生必备数码产品有哪些 浏览:494