Ⅰ 地理空間數據雲,感測器怎麼選擇
1、首先打開電腦,點擊下載軟體《地理空間數據雲》。
2、其次在軟體中找到相對應的設備。
3、最後通過數據轉換得出的型號就是最合適的感測器型號。
Ⅱ 怎麼在中國地理空間數據雲找梅州市行政邊界
今天我們以高德地圖為例,講解一下如何獲取全國省市區行政邊界數據。
高德開放平台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種基於高德地圖獲取全國省市區行政
Ⅲ 怎麼下載重慶市各區縣的DEM數據
1、首先在網頁中搜索「地理空間數據雲」,打開其頁面。
2、這里需要地理空間數據雲的賬號,點擊右上角的注冊,注冊一個賬號。
3、注冊完後,登陸賬號,然後開始檢索所需DEM數據。這里介紹一下高級檢索:點擊「高級檢索」即可進入,然後我們可以分別按照「地名」、「經緯度」、「行政區」三種條件檢索,同時也可以使用「日期」等進一步縮小范圍。
4、我們輸入經緯度范圍,或者輸入行政區名稱。
5、選擇數據集,這里我們選擇「DEM數字高程數據」,其中有90米和30米之別。我們根據自己需要選擇。然後點擊「確定」。
6、這就是搜索到的數據,我們點擊「更多」—「下載數據」,這里需要我選擇網路,則可根據需要選擇即可。
Ⅳ 如何在地理空間數據雲中預定數據
先將需要的數據進行收藏,打開個人的頁面,有一個下載申請選項,點開以後進行數據預定,然後將你所需要下載的數據選中提交申請即可。
Ⅳ 北京市區圖在地里空間數據雲如何下載
網頁下載。
1、搜索「地理空間數據雲」,打開界面。
2、選擇高級搜索,在地圖中找到自己需要地區的區域。
3、點擊數據集選擇自己需要的衛星(不同衛星有不同的特點與解析度等特性)。
4、在空間位置,時間,雲量地區選擇自己所需圖像,之後點擊檢索,下載自己所需遙感影像數據即可。
Ⅵ 烏克蘭地理空間數據雲怎麼下載
下載具體步驟如下:
1.注冊賬號
首先需要注冊一個賬號。注冊賬號比較簡單。
2.選擇數據集
登陸進來以後,我們可以直奔主題,選擇自己想要下載的數據。點擊高級檢索。
點擊「點擊選擇數據集」選擇要下載的數據,這里我們選擇SRTMDEM90M解析度數據,然後點擊確定。
選擇數據集成功
3.選擇數據集范圍
接下來我們要圈定自己想要下載的區域的DEM,這里提供了5種確定自己研究區范圍的選項。對於行政區來說,如果知道自己研究區在哪個區縣里,就可以通過這種方式直接選擇;如果知道研究區的經緯度范圍就可以選擇第二種方式下載;行列號與經緯度類似,用的也比較少;地圖選擇就是直接在地圖上手動畫一個范圍;第五種方法就是直接上傳一個.shp文件,然後地圖會自動顯示該.shp文件范圍。
4.數據下載
按照行政區選擇范圍後,點擊「搜索」,就可以得到覆蓋數據了。
Ⅶ 地理空間數據雲沒有數據怎麼辦
地理空間數據雲沒有數據需要注冊後才能顯示。步驟如下:
1、下載地理空間數據雲APP,點進入,登陸。
2、沒有帳號需要注冊,填寫個人資料,就注冊成功了。
3、首頁高級搜索可以看到數據。
Ⅷ 地理空間數據雲下載的影像已經經過什麼處理,還需進行哪些處理。我做地表覆蓋分類。
1、在地理空間數據雲的相應產品說明下有介紹,如圖(Landsat 7 ETM SLC-on):
2、根據介紹,可以看出已經經過輻射校正和基本幾何校正。所以,如果是做LUCC的話,可以直接使用。如果後期制圖要疊加其他基礎圖層要素的話,可以再做幾何精校正。
Ⅸ 地理空間數據雲雲量怎麼填
地理數據空間雲並不需要填寫雲量。它是一款中國科學院計算機網路信息中心科學數據中心啟動了「國際科學數據服務平台」建設。
2011年,科學數據中心在「國際科學數據服務平台"基礎上開始建設「地理空間數據雲平台",並於2013年1月正式對外投入使用。
地理數據雲使用方法:
1、進入該平台的官方網站,直接在官網上完成賬號的注冊;
2、完成注冊之後,可以進入該平台檢索你所需要的信息。
3、如果你想要下載免費的DEM數據,同樣需要再注冊賬號之後在高級檢索中選擇你想尋找的數據集,之後進行下載操作即可。
Ⅹ 地理空間數據雲下載的dem高程數據是tif格式,裡面的灰度值都是小於255的,怎麼算出正確的高程
arctoolb的柵格轉多點功能,
彈出功能框後輸入柵格,注意在要素後面直接加後綴。在對話框右邊有取點的方法,方法挺多的你看看哪種合適,
高程值需要的是點屬性,注意其中轉化。多點屬性轉成點屬性(因為後續的在點數據中添加高程值需要的是點屬性,而不是多點屬性),找到arctoolbox->數據管理工具->要素->要素轉點功能,注意是要素,不是要素類。
在操作對話框中選擇多點屬性的點數據,選擇輸出路徑,文件名,文件名加上格式後綴,比如DEMPoint.shp。
確定後開始處理,很快處理完成。查看其屬性表,可以發現,屬性變成了點屬性。
最後開始把高程值添加到點數據中。
找到arctoolbox->Spatial Analyst->提取分析->值提取至點功能。如下圖
在彈出的操作對話框中輸入點數據DEMPoint.shp,柵格DEM.tif,輸出點數據Elevation.shp。開始運算。
運算完成,自動載入在arcgis中,可以打開查看Elevation.shp的屬性表,發現最後一列就是通過DEM數據提取出來的對應點的高程值。結束,收工。