나는 당신의 의사 코드를 가져다가 만든 그 아이리스 '샘플 데이터를 실행 가능한 :이 코드를 실행하면
import iris
import iris.plot as iplt
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fname = iris.sample_data_path('air_temp.pp')
air_temp = iris.load_cube(fname)
ax = plt.axes(projection=ccrs.Robinson())
iplt.contourf(air_temp, transform=ccrs.Robinson(central_longitude=180))
ax.coastlines()
plt.show()
, 당신의 라인을 따라 예외를 얻을 것이다 :
Traceback (most recent call last):
File "using_custom_projections.py", line 11, in <module>
iris.plot.contourf(air_temp, transform=ccrs.Robinson())
File "lib/iris/plot.py", line 452, in contourf
result = _draw_2d_from_points('contourf', None, cube, *args, **kwargs)
File "lib/iris/plot.py", line 263, in _draw_2d_from_points
result = _map_common(draw_method_name, arg_func, iris.coords.POINT_MODE, cube, data, *args, **kwargs)
File "lib/iris/plot.py", line 406, in _map_common
assert 'transform' not in kwargs, 'Transform keyword is not allowed.'
AssertionError: Transform keyword is not allowed.
"변환"(또는 coord inate 시스템) 큐브가 들어 있습니다. 그 이유는 아이리스 큐브가 기본 데이터에 대한 전체 메타 데이터를 포함해야한다는 것입니다. 좌표 시스템은 해당 메타 데이터의 일부입니다.
그래서, 당신의 contourf
호출 키워드 인수를 변환, 당신은 간단하게 제거 할 수있는 작업의 예를 얻을 수 있습니다 :
import iris
import iris.plot as iplt
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fname = iris.sample_data_path('air_temp.pp')
air_temp = iris.load_cube(fname)
ax = plt.axes(projection=ccrs.Robinson(central_longitude=180))
iplt.contourf(air_temp)
ax.coastlines()
plt.show()
구체적으로, http://scitools.org.uk/iris/docs/latest/examples/graphics/rotated_pole_mapping.html#rotated-pole-mapping-03iris gallery에서 비슷한 예입니다 (이 예에서 마지막 줄거리).
HTH,
질문을 해결하면 제 대답을 수락하십시오. 그것은 질문이 python-iris 태그의 "답이없는"범주에 나타나지 않고 여전히 조사가 필요한 질문을 찾도록 도와줍니다. 감사! – pelson