2015-09-23 1 views
0

Это должно быть возможно, но я не уверен, как подойти к нему.Получение проекции базовой карты в виде массива numpy

У меня есть географический домен с установленным числом латов и логов. С их помощью я могу построить простую Basemap домена:

fp_mhd = name.footprints('path/to/file') 
domain_lon = fp_mhd.lon 
domain_lat = fp_mhd.lat 


### Construct Basemap ### 
m = Basemap(resolution='c',projection='gall', 
      llcrnrlat=(np.min(domain_lat)), 
      urcrnrlat=(np.max(domain_lat)), 
      llcrnrlon=(np.min(domain_lon)), 
      urcrnrlon=(np.max(domain_lon))) 

Что мне нужно каким-то образом отличать страны от океанов в этой области, и возвращает результат в виде массива, т.е. 1s на землю и 0s для океан (хотя эти значения не имеют значения). Массив должен быть 2-D, где каждая точка соответствует конкретному lat и lon. Так скажите, что было 100 латов и 200 лотов, было бы 20000 1 с и 0. Я задавался вопросом, есть ли способ конвертировать объект Basemap в массив, но этого не удалось. Является ли это возможным?

Заранее благодарен!

+0

Что такое Базовая карта? Какой пакет вы используете для построения? Какие данные вы должны рассказать океанам из стран и как вы его используете? –

ответ

1

Посмотрите на следующую функцию. Вы должны иметь возможность извлекать маску, поскольку она возвращает массив с маской в ​​numpy.

.маска возвращает булевский массив.

mpl_toolkits.basemap.maskoceans (lonsin, latsin, DATAIN, inlands = True, разрешение = 'L', сетки = 5)

возвращает замаскированный массиву такую ​​же форму, как DATAIN с «мокрым» очки в масках.

Basemap documentation

Numpy Masked Array Documentation

Смежные вопросы