Skip to content

Commit

Permalink
Adjust chunk size for GAC reader
Browse files Browse the repository at this point in the history
  • Loading branch information
mraspaud committed Mar 25, 2019
1 parent a9257a2 commit f4f5cdb
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions satpy/readers/avhrr_l1b_gaclac.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
from pygac.gac_pod import GACPODReader
import xarray as xr
import dask.array as da
from satpy import CHUNK_SIZE
from satpy.readers.file_handlers import BaseFileHandler

logger = logging.getLogger(__name__)
Expand All @@ -53,42 +54,41 @@ def __init__(self, filename, filename_info, filetype_info):

self.reader = None
self.channels = None
self.chn_dict = None
self._start_time = filename_info['start_time']
self._end_time = datetime.combine(filename_info['start_time'].date(),
filename_info['end_time'].time())
if self._end_time < self._start_time:
self._end_time += timedelta(days=1)
self.platform_id = filename_info['platform_id']
if self.platform_id in ['NK', 'NL', 'NM', 'NN', 'NP']:
self.reader_class = GACKLMReader
self.chn_dict = AVHRR3_CHANNEL_NAMES
else:
self.reader_class = GACPODReader
self.chn_dict = AVHRR_CHANNEL_NAMES

def get_dataset(self, key, info):
if self.reader is None:
if self.platform_id in ['NK', 'NL', 'NM', 'NN', 'NP']:
reader = GACKLMReader
self.chn_dict = AVHRR3_CHANNEL_NAMES
else:
reader = GACPODReader
self.chn_dict = AVHRR_CHANNEL_NAMES

self.reader = reader()
self.reader = self.reader_class()
self.reader.read(self.filename)

if key.name in ['latitude', 'longitude']:
if self.reader.lons is None or self.reader.lats is None:
# self.reader.get_lonlat(clock_drift_adjust=False)
self.reader.get_lonlat()
if key.name == 'latitude':
return xr.DataArray(da.from_array(self.reader.lats, chunks=1000),
dims=['y', 'x'], attrs=info)
data = self.reader.lats
else:
return xr.DataArray(da.from_array(self.reader.lons, chunks=1000),
dims=['y', 'x'], attrs=info)
data = self.reader.lons
else:
if self.channels is None:
self.channels = self.reader.get_calibrated_channels()

if self.channels is None:
self.channels = self.reader.get_calibrated_channels()
data = self.channels[:, :, self.chn_dict[key.name]]

data = self.channels[:, :, self.chn_dict[key.name]]
return xr.DataArray(da.from_array(data, chunks=1000),
chunk_cols = data.shape[1]
chunk_lines = int((CHUNK_SIZE ** 2) / chunk_cols)
return xr.DataArray(da.from_array(data, chunks=(chunk_lines, chunk_cols)),
dims=['y', 'x'], attrs=info)

@property
Expand Down

0 comments on commit f4f5cdb

Please sign in to comment.