def __init__(self, sio_details): """ Parameters ---------- sio_details : str|SIODetails filename or SIODetails object """ if isinstance(sio_details, str): sio_details = SIODetails(sio_details) if not isinstance(sio_details, SIODetails): raise TypeError('The input argument for SIOReader must be a filename or ' 'SIODetails object.') self._sio_details = sio_details sicd_meta = sio_details.get_sicd() if sicd_meta.ImageData.PixelType == 'AMP8I_PHS8I': transform_data = amp_phase_to_complex(sicd_meta.ImageData.AmpTable) else: transform_data = 'COMPLEX' raw_bands = 2 output_bands = 1 output_dtype = 'complex64' chipper = BIPChipper(sio_details.file_name, sio_details.data_type, sio_details.data_size, raw_bands, output_bands, output_dtype, symmetry=sio_details.symmetry, transform_data=transform_data, data_offset=sio_details.data_offset) SICDTypeReader.__init__(self, sicd_meta) BaseReader.__init__(self, chipper, reader_type="SICD") self._check_sizes()
def __init__(self, data_segment: Union[None, DataSegment, Sequence[DataSegment]], cphd_meta: Union[None, CPHDType1_0, CPHDType0_3], close_segments: bool=True, delete_files: Union[None, str, Sequence[str]]=None): """ Parameters ---------- data_segment : None|DataSegment|Sequence[DataSegment] cphd_meta : None|CPHDType1_0|CPHDType0_3 The CPHD metadata object close_segments : bool Call segment.close() for each data segment on reader.close()? delete_files : None|Sequence[str] Any temp files which should be cleaned up on reader.close()? This will occur after closing segments. """ if cphd_meta is None: self._cphd_meta = None elif isinstance(cphd_meta, (CPHDType1_0, CPHDType0_3)): self._cphd_meta = cphd_meta else: raise TypeError( 'The cphd_meta must be of type CPHDType, got `{}`'.format(type(cphd_meta))) BaseReader.__init__( self, data_segment, reader_type='CPHD', close_segments=close_segments, delete_files=delete_files)
def __init__(self, data_segment: Union[None, DataSegment, Sequence[DataSegment]], sicd_meta: Union[None, SICDType, Sequence[SICDType]], close_segments: bool=True, delete_files: Union[None, str, Sequence[str]]=None): """ Parameters ---------- data_segment : None|DataSegment|Sequence[DataSegment] sicd_meta : None|SICDType|Sequence[SICDType] The SICD metadata object(s). close_segments : bool Call segment.close() for each data segment on reader.close()? delete_files : None|Sequence[str] Any temp files which should be cleaned up on reader.close()? This will occur after closing segments. """ if sicd_meta is None: self._sicd_meta = None elif isinstance(sicd_meta, SICDType): self._sicd_meta = sicd_meta else: temp_list = [] for el in sicd_meta: if not isinstance(el, SICDType): raise TypeError( 'Got a collection for sicd_meta, and all elements are required ' 'to be instances of SICDType.') temp_list.append(el) self._sicd_meta = tuple(temp_list) BaseReader.__init__( self, data_segment, reader_type='SICD', close_segments=close_segments, delete_files=delete_files)
def __init__(self, csk_details): """ Parameters ---------- csk_details : str|CSKDetails file name or CSKDetails object """ if isinstance(csk_details, string_types): csk_details = CSKDetails(csk_details) if not isinstance(csk_details, CSKDetails): raise TypeError('The input argument for a CSKReader must be a ' 'filename or CSKDetails object') self._csk_details = csk_details sicd_data, shape_dict, symmetry = csk_details.get_sicd_collection() chippers = [] sicds = [] for band_name in sicd_data: if self._csk_details.mission_id in ['CSK', 'KMPS']: the_band = '{}/SBI'.format(band_name) elif self._csk_details.mission_id == 'CSG': the_band = '{}/IMG'.format(band_name) else: raise ValueError('Unhandled mission id {}'.format( self._csk_details.mission_id)) sicds.append(sicd_data[band_name]) chippers.append( H5Chipper(csk_details.file_name, the_band, shape_dict[band_name], symmetry)) SICDTypeReader.__init__(self, tuple(sicds)) BaseReader.__init__(self, tuple(chippers), reader_type="SICD")
def __init__(self, nisar_details): """ Parameters ---------- nisar_details : str|NISARDetails file name or NISARDetails object """ if isinstance(nisar_details, str): nisar_details = NISARDetails(nisar_details) if not isinstance(nisar_details, NISARDetails): raise TypeError('The input argument for NISARReader must be a ' 'filename or NISARDetails object') self._nisar_details = nisar_details sicd_data, shape_dict, symmetry = nisar_details.get_sicd_collection() chippers = [] sicds = [] for band_name in sicd_data: sicds.append(sicd_data[band_name]) chippers.append(H5Chipper(nisar_details.file_name, band_name, shape_dict[band_name], symmetry)) SICDTypeReader.__init__(self, tuple(sicds)) BaseReader.__init__(self, tuple(chippers), reader_type="SICD") self._check_sizes()
def __init__(self, cphd_details): """ Parameters ---------- cphd_details : str|CPHDDetails """ self._cphd_details = _validate_cphd_details(cphd_details, version='0.3') chipper = self._create_chippers() BaseReader.__init__(self, None, chipper, is_sicd_type=False)
def __init__(self, cphd_details): """ Parameters ---------- cphd_details : str|CPHDDetails """ self._cphd_details = _validate_cphd_details(cphd_details, version='1.0') chipper = self._create_chippers() BaseReader.__init__(self, None, chipper, reader_type="CPHD")
def __call__(self, *ranges: Sequence[Union[None, int, slice]], index: int=0, raw: bool=False, squeeze: bool=True) -> numpy.ndarray: index = self._validate_index(index) return BaseReader.__call__(self, *ranges, index=index, raw=raw, squeeze=squeeze)
def __init__(self, crsd_details): """ Parameters ---------- crsd_details : str|CRSDDetails """ self._channel_map = None # type: Union[None, Dict[str, int]] self._support_array_map = None # type: Union[None, Dict[str, int]] self._pvp_memmap = None # type: Union[None, Dict[str, numpy.ndarray]] self._support_array_memmap = None # type: Union[None, Dict[str, numpy.ndarray]] self._crsd_details = _validate_crsd_details(crsd_details, version='1.0') CRSDTypeReader.__init__(self, self._crsd_details.crsd_meta) chipper = self._create_chippers() BaseReader.__init__(self, chipper, reader_type="CRSD") self._create_pvp_memmaps() self._create_support_array_memmaps()
def __init__(self, iceye_details): """ Parameters ---------- iceye_details : str|ICEYEDetails file name or ICEYEDetails object """ if isinstance(iceye_details, string_types): iceye_details = ICEYEDetails(iceye_details) if not isinstance(iceye_details, ICEYEDetails): raise TypeError('The input argument for a ICEYEReader must be a ' 'filename or ICEYEDetails object') self._iceye_details = iceye_details sicd, data_size, symmetry = iceye_details.get_sicd() chipper = ICEYEChipper(iceye_details.file_name, data_size, symmetry) SICDTypeReader.__init__(self, sicd) BaseReader.__init__(self, chipper, reader_type="SICD")
def __init__(self, capella_details): """ Parameters ---------- capella_details : str|CapellaDetails """ if isinstance(capella_details, string_types): capella_details = CapellaDetails(capella_details) if not isinstance(capella_details, CapellaDetails): raise TypeError('The input argument for capella_details must be a ' 'filename or CapellaDetails object') self._capella_details = capella_details sicd = self.capella_details.get_sicd() chipper = NativeTiffChipper( self.capella_details.tiff_details, symmetry=self.capella_details.get_symmetry()) SICDTypeReader.__init__(self, sicd) BaseReader.__init__(self, chipper, reader_type="SICD")
def __init__(self, reader, row_bounds=None, column_bounds=None, index=0): """ Parameters ---------- reader : SICDTypeReader The base reader. row_bounds : None|Tuple[int, int] Of the form `(min row, max row)`. column_bounds : None|Tuple[int, int] Of the form `(min column, max column)`. index : int The image index. """ sicd, row_bounds, column_bounds = reader.get_sicds_as_tuple( )[index].create_subset_structure(row_bounds, column_bounds) chipper = SubsetChipper(reader._get_chippers_as_tuple()[index], row_bounds, column_bounds) BaseReader.__init__(self, chipper, reader_type='SICD') SICDTypeReader.__init__(self, sicd)
def __init__(self, crsd_details: Union[str, CRSDDetails]): """ Parameters ---------- crsd_details : str|CRSDDetails """ self._channel_map = None # type: Union[None, Dict[str, int]] self._support_array_map = None # type: Union[None, Dict[str, int]] self._pvp_memmap = None # type: Union[None, Dict[str, numpy.ndarray]] self._support_array_memmap = None # type: Union[None, Dict[str, numpy.ndarray]] self._crsd_details = _validate_crsd_details(crsd_details, version='1.0') CRSDTypeReader.__init__(self, None, self._crsd_details.crsd_meta) # set data segments after setting up the pvp information, because # we need the AmpSf to set up the format function for the data segment self._create_pvp_memmaps() self._create_support_array_memmaps() data_segments = self._create_data_segments() BaseReader.__init__(self, data_segments, reader_type='CRSD')