Питон ортогональной проекции

Я использую ортогональную проекцию, чтобы подготовить карты. Я использую эту программу:

from mpl_toolkits.basemap import Basemap
import numpy as np    
import matplotlib.pyplot as plt   
import os, sys    
from sys import argv   
import pylab    
from mpl_toolkits.basemap import Basemap, shiftgrid    
from matplotlib import mpl     
from matplotlib import rcParams    
import matplotlib.pyplot as plt    
import matplotlib.mlab as mlab    
import matplotlib.patches as patches    
import matplotlib.path as path    
import matplotlib.dates as dt    
from numpy import linalg    
import netCDF4    
import time    
import datetime as d   
import sys    
import math    
from mpl_toolkits.axes_grid1 import make_axes_locatable   
from pylab import *


nc = netCDF4.Dataset ('tt.nc')    
latvar = nc.variables['lat']    
lat = latvar[:]    
lon = nc.variables['lon'][:]    
lat_0=30;lon_0=-25    
m1 = Basemap(projection='ortho',lon_0=-25,lat_0=30,resolution='l')    
m = Basemap(projection='ortho',lon_0=lon_0,lat_0=lat_0,resolution='l',\
    llcrnrx=0.,llcrnry=0.,urcrnrx=m1.urcrnrx/2.,urcrnry=m1.urcrnry/2.)

X, Y = m(lon, lat)    
O_x_1=nc.variables['O3']   
h=9    
lev=0    
minOzone=0    
maxOzone=40    
plotOzone = m.pcolor(X,Y,O_x_1[h,lev,:,:],vmin=minOzone,vmax=maxOzone)
ax=colorbar(plotOzone, shrink=0.8,norm=(0,40))    
m.drawcoastlines()   
m.drawparallels(np.arange(-90.,120.,30.))    
m.drawmeridians(np.arange(0.,420.,60.))    
plt.show()

Что я должен сделать, чтобы сосредоточить мою карту на Европе?

Я уже играл с lat_0 и lon_0, но это не делает дайте то, что я хочу...

Я не могу добавить числа, чтобы показать то, что я получил и что я хотел бы...

Спасибо!

0
nl ja de
matplotlib и признак matplotlib-basemap добавляются
добавлено автор Francesco Montesano, источник

1 ответы

lat_0 и lon_0 для урегулирования происхождения проектирования, не степени карты. Обычно место с наименьшим количеством искажений, таким образом, вы не хотите, чтобы происхождение отклонилось слишком много от центра вашей интересующей области. Basemap автоматически сосредоточит карту вокруг происхождения, если вы не определите степень.

Сосредоточение карты (отличающийся от ее происхождения) может быть сделано, если вы знаете, какую степень (или boundingbox) вы хотите использовать. Если вы знаете угловые координаты в своем 'ortho' прогнозе, вы могли бы использовать ключевые слова от своего примера (llcrnrx и т.д.). У меня не было удачи с 'llcrnrlon' ключевыми словами в Basemap 1.0.6, они, кажется, предполагают, что можно ввести координаты степени в географическом (lat/lon).

Альтернатива должна захватить оси и вручную установить предел y и x-. Выгода - то, что можно сделать это после объявления объекта Basemap, который можно тогда использовать для координационного преобразования. Пример:

from mpl_toolkits.basemap import Basemap

fig = plt.figure(figsize=(5,5))

m = Basemap(projection='ortho',lon_0=5,lat_0=35,resolution='l')

m.drawcoastlines()
m.drawparallels(np.arange(-90.,120.,15.))
m.drawmeridians(np.arange(0.,420.,30.))

# your extent in lat/lon (dec degrees)
ulx = -10
uly = 65
lrx = 65
lry = 35

# transform coordinates to map projection
xmin, ymin = m(ulx, lry)
xmax, ymax = m(lrx, uly)

# set the axes limits
ax = plt.gca()
ax.set_xlim(xmin, xmax)
ax.set_ylim(ymin, ymax)

Удостоверьтесь проектирование в номерах люкс декларации карты ваши потребности, я только что выбрал происхождение, которое находится в пределах Европы.

enter image description here

5
добавлено
Спасибо за вашу помощь. Это - то, что я хотел сделать!
добавлено автор user2050187, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community