Numpy Masked Array изменяет нули на огромное количество при загрузке в другой скрипт - PullRequest
1 голос
/ 20 марта 2019

У меня есть скрипт, в котором я создаю маски на сетчатом массиве для определенных расстояний от береговой линии и сохраняю их в файл netcdf.У меня есть файл сетки с широтой, долготой и маской (файлы netcdf).Мой сценарий (здесь упрощенно) выполняет следующие действия:

from netCDF4 import Dataset

grd = Dataset('gridfile', 'r')
mask_rho = grd.variables['mask_rho'][:]
lat = grd.variables['lat'][:]

full_region = np.copy(mask_rho) #copy land mask from grid file

full_region[lat<5] = 0. #masks latitudes above and below region of interest
full_region[lat>35] = 0.

mask_full = np.ma.masked_where(full_region==0., full_region) #numpy mask

filename = directory+'mask.nc'
ncfile = Dataset(filename, 'w', format='NETCDF4')
ncfile.createDimension('lat', lat)
ncfile.createDimension('lon',lon)
Dims = ('lat,'lon')

data = ncfile.createVariable('mask_full','f4',Dims)
data[:] = mask_full

ncfile.close()

Однако, когда я открываю файл netcdf, который я создал в другом сценарии, данные появляются в трех формах:

  1. «замаскированные данные» (замаскированные значения пустые, значения в маске 1)
  2. «данные» (значения в маске 1, а замаскированные значения - какое-то огромное число, 996920996838 .....)
  3. и «маска», которая является истинным / ложным логическим значением.

Почему часть данных дает мне такое огромное количество?И почему существуют три типа данных?

...