我正在尝试在 matplotlib.pyplot 上实现一个函数,它可以在我的地图中插入标尺和指北针。
\n\n我正在尝试调整“ http://stackoverflow.com/a/35705477/1072212 ”中的代码为 Geopandas 地理数据集。
\n\n在我的尝试中,主要问题是获取每个图(轴)的边界框坐标。出现的错误是:“subplot AttributeError:\'AxesSubplot\'对象没有属性\'get_extent\'”
\n\n我尝试了很多方法来规避这个问题,但没有成功(见附件中的代码)。
\n\n如下例所示(附件中的代码),我使用巴西的社会经济数据(来自 IBGE - https://www.ibge.gov.br/estatisticas-novoportal/sociais/populacao/9109-projecao-da-populacao。 html?=&t=下载)。
\n\n该社会经济数据已根据巴西的 shapefile 进行地理定位(获取于:http ://www.codegeo.com.br/2013/04/shapefiles-do-brasil-para-download.html)进行地理定位,并在下面的代码为“SHP_joined”。因此,为了更好地描述它,SHP_joined 是一个 geopandas 地理数据框,我试图从中实现其图中的标尺和指北针。
\n\n还提供了我想要的最终图像的示例。“在此图像示例中,它仍然缺少标尺和指北针”
\n\n感谢您抽出宝贵的时间,希望很快能收到您的回复。
\n\n`# -*- coding: utf-8 -*-\n"""\nCreated on Fri Jul 20 14:53:26 2018\n\n@author: Terry Brown - Adapted by Philipe Leal\n"""\n\nimport os\nimport cartopy.crs as ccrs\nfrom math import floor\nimport matplotlib.pyplot as plt\nfrom matplotlib import patheffects\nimport numpy as np\nimport matplotlib\nif os.name == \'nt\':\n matplotlib.rc(\'font\', family=\'Arial\')\nelse: \n # …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 xarray 在数据集中的所有坐标对(即像素)apply_ufunc
上应用给定函数f
。
该函数f
返回一个二维数组(NxN 矩阵)作为结果。因此,分析后得到的 Dataset 会有几个新变量:总共是M
新变量。
该功能f
确实工作得很好。所以,错误似乎不是来自它。
一个可能的问题可能是 2D 数组从 返回的结构f
。据我了解,xarray.apply_ufunc
要求结果数组以元组结构。所以,我什至尝试将二维数组转换为数组元组,但到目前为止没有任何效果。
这种情况可以在其他地方的其他作品被选中的作品也是如此。在本链接中,作者必须在原始数据集上运行两次相同的线性回归拟合函数,以便从回归中检索所有参数(beta_0 和 alpha)。
因此,我想知道,是否xarray.apply_ufunc
能够像上面的链接(或下面的代码片段)中那样操作归约函数,该函数返回多个新变量。
下面我展示了一个涉及所讨论问题的可重现代码。请注意,该函数f
返回一个二维数组。第二维的深度是4。因此,我希望在整个处理后得到一个带有4个新变量的结果数据集。
import numpy as np
import xarray as xr
x_size = 10
y_size = 10
time_size = 30
lon = np.arange(50, 50+x_size)
lat = np.arange(10, 10+y_size)
time = np.arange(10, 10+time_size)
array = np.random.randn(y_size, x_size, time_size)
ds = xr.DataArray(
data=array,
coords = {'lon':lon, 'lat':lat, 'time':time}, …
Run Code Online (Sandbox Code Playgroud)