下载地址
中国水文站点下载地址
可以发现是json格式的,我们可以利用不同的工具获取我们想要的信息
{
"message": "ok",
"result": [
{
"address": "贵州省遵义县乌江镇盐仓坝 ",
"addv": "贵州省 遵义市",
"bsnm": "长江 ",
"code": "60800410",
"hnnm": "乌江 ",
"id": "50",
"lat": "27.313611",
"level": "",
"lon": "106.786944",
"name": "乌江渡(三) ",
"rvnm": "乌江 ",
"sttp": "ZZ",
"tm": "2023-08-28 14:00:00",
"type": "河道站"
},...
"returncode": 0
利用Python获取塔里木河流域的水文站点名称和经纬度数据
import json
# 我将json文件保存为hydrology_station.json
with open('./hydrology_station.json', 'r') as f:
# json_str为json字符串
json_str = f.read()
# 将json_str转换为对象
data = json.loads(json_str)
# print(data.keys()) dict_keys(['message', 'result', 'returncode'])
res_arr = data['result']
final_arr = []
for i in range(len(res_arr)):
# 查询塔里木河流域的水文站
# replace去除字符串中的空格
if res_arr[i]['bsnm'].replace(" ", "") == '塔里木河':
final_arr.append(res_arr[i])
# 输出水文站的名字和经纬度
for j in range(len(final_arr)):
print(final_arr[j]['name'].replace(" ",""), final_arr[j]['lat'],
final_arr[j]['lon'])
输出结果如下
卡群(二) 37.965521 76.874411
沙曼(二) 38.802627 75.621318
西大桥(新大河) 41.1173 80.22
黑孜 41.8275 82.4375
库鲁克栏干(三) 37.686213 76.207145
阿拉尔 40.5369 81.2997
新渠满 41.0005 82.789
克勒克(三) 38.812361 75.393481
同古孜洛克 36.808685 79.914588
皮山 37.190333 77.761444
托克逊 41.7025 82.0891
兰干 41.8997 83.0647
克里雅 36.451658 81.482711
利用GMT绘制全国水文站点
#!/usr/bin/env -S bash -e
set -e
# GMT modern mode bash template
# Date: 2023-08-28T16:39:51
# User: br
# Purpose: Purpose of this script
export GMT_SESSION_NAME=$$ # Set a unique session name
gmt begin hydrology_station
# Place modern session commands here
gmt set MAP_GRID_PEN_PRIMARY 0.25p,gray,2_2
# 绘制中国地图
gmt coast -JM105/35/10c -R70/138/13/56 -Ba10f5g10 -G244/243/239 -S167/194/223
gmt basemap -Lg85/17.5+c17.5+w800k+f+u --FONT_ANNOT_PRIMARY=4p
gmt plot CN-border-La.gmt -W0.1p
# 绘制南海区域
gmt inset begin -DjRB+w1.8c/2.2c -F+p0.5p
gmt coast -JM? -R105/123/3/24 -G244/243/239 -S167/194/223 -Df
gmt plot CN-border-La.gmt -W0.1p
gmt inset end
# 绘制水文站点,hydrology_station.txt是全国水文站点的经纬度,经度列在前,纬度列在后
gmt plot hydrology_station.txt -Sc0.04c -Gblue
gmt end show