python提取用友数据_python中的.nc文件处理 | 04 利用矢量边界提取NC数据

利用矢量边界提取.nc数据

import os

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import cartopy.crs as ccrs

import cartopy.feature as cfeature

import seaborn as sns

import geopandas as gpd

import earthpy as et

import xarray as xr

# .nc文件的空间切片包

import regionmask

# 绘图选项

sns.set(font_scale=1.3)

sns.set_style("white")

读取数据

data_path_monthly='http://thredds.northwestknowledge.net:8080/thredds/dodsC/agg_macav2metdata_tasmax_BNU-ESM_r1i1p1_rcp45_2006_2099_CONUS_monthly.nc'

with xr.open_dataset(data_path_monthly) as file_nc:

monthly_forecast_temp_xr=file_nc

monthly_forecast_temp_xr

读取感兴趣区的Shapefile文件

# 下载数据

# et.data.get_data(

# url="https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_1_states_provinces_lakes.zip")

# 读取.shp文件

states_path = "ne_50m_admin_1_states_provinces_lakes"

states_path = os.path.join(

states_path,"ne_50m_admin_1_states_provinces_lakes.shp"

)

states_gdf=gpd.read_file(states_path)

states_gdf.head()

筛选出California州范围

cali_aoi=states_gdf[states_gdf.name=="California"]

# 获取其外包络矩形坐标

cali_aoi.total_bounds

array([-124.37165376, 32.53336527, -114.12501824, 42.00076797])

根据外包络矩形经纬度对nc数据进行切片

利用sel()函数

# 获取外包络矩形的左下角和右上角经纬度坐标

aoi_lat = [float(cali_aoi.total_bounds[1]), float(cali_aoi.total_bounds[3])]

aoi_lon = [float(cali_aoi.total_bounds[0]), float(cali_aoi.total_bounds[2])]

print(aoi_lat, aoi_lon)

# 将坐标转换为标准经度,即去掉正负号

aoi_lon[0] = aoi_lon[0] + 360

aoi_lon[1] = aoi_lon[1] + 360

print(aoi_lon)

[32.533365269889316, 42.00076797479207] [-124.3716537616361, -114.12501823892204]

[235.62834623836392, 245.87498176107795]

# 根据指定的时间和空间范围进行切片

start_date = "2010-01-15"

end_date = "2010-02-15"

two_months_cali = monthly_forecast_temp_xr["air_temperature"].sel(

time

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值