class PVGeoLandsatReader(LandsatReader): def __init__(self): LandsatReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml(LandsatReader.extensions, readerDescription=LandsatReader.description)) def AddFileName(self, fname): LandsatReader.AddFileName(self, fname) @smproperty.dataarrayselection(name="Available Bands") def GetDataSelection(self): return LandsatReader.GetDataSelection(self) @smproperty.xml( _helpers.getPropertyXml( name='Cast Data Type', command='CastDataType', default_values=True, help= 'A boolean to set whether to cast the data arrays so invalid points are filled nans.', panel_visibility='advanced')) def CastDataType(self, flag): LandsatReader.CastDataType(self, flag) @smproperty.xml( _helpers.getDropDownXml(name='Color Scheme', command='SetColorScheme', labels=LandsatReader.GetColorSchemeNames(), help='Set a color scheme to use.')) def SetColorScheme(self, scheme): LandsatReader.SetColorScheme(self, scheme)
class PVGeoMagObsReader(MagObsReader): def __init__(self): MagObsReader.__init__(self) #### Seters and Geters #### @smproperty.xml(_helpers.getFileReaderXml(MagObsReader.extensions, readerDescription=MagObsReader.description)) def AddFileName(self, fname): MagObsReader.AddFileName(self, fname) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): MagObsReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return MagObsReader.GetTimestepValues(self) @smproperty.intvector(name="SkipRows", default_values=0, panel_visibility="advanced") def SetSkipRows(self, skip): MagObsReader.SetSkipRows(self, skip) @smproperty.stringvector(name="Comments", default_values="!", panel_visibility="advanced") def SetComments(self, identifier): MagObsReader.SetComments(self, identifier)
class PVGeoEsriGridReader(EsriGridReader): def __init__(self): EsriGridReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml(EsriGridReader.extensions, readerDescription=EsriGridReader.description) ) def AddFileName(self, fname): EsriGridReader.AddFileName(self, fname) @smproperty.stringvector(name='DataName', default_values='Data') def SetDataName(self, dataName): EsriGridReader.SetDataName(self, dataName) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): EsriGridReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return EsriGridReader.GetTimestepValues(self)
class PVGeoSGeMSGridReader(SGeMSGridReader): def __init__(self): SGeMSGridReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml("sgems dat geoeas gslib GSLIB txt SGEMS", readerDescription='GSLib Table')) def AddFileName(self, fname): SGeMSGridReader.AddFileName(self, fname) @smproperty.stringvector(name="Delimiter", default_values=" ") def SetDelimiter(self, deli): SGeMSGridReader.SetDelimiter(self, deli) @smproperty.xml( _helpers.getPropertyXml( name='Use Tab Delimiter', command='SetUseTab', default_values=False, help= 'A boolean to override the Delimiter_Field and use a Tab delimiter.' )) def SetUseTab(self, flag): SGeMSGridReader.SetUseTab(self, flag) @smproperty.intvector(name="SkipRows", default_values=0) def SetSkipRows(self, skip): SGeMSGridReader.SetSkipRows(self, skip) @smproperty.stringvector(name="Comments", default_values="#") def SetComments(self, identifier): SGeMSGridReader.SetComments(self, identifier) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): SGeMSGridReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return SGeMSGridReader.GetTimestepValues(self) @smproperty.doublevector( name="Spacing", default_values=[1.0, 1.0, 1.0], ) def SetSpacing(self, dx, dy, dz): SGeMSGridReader.SetSpacing(self, dx, dy, dz) @smproperty.doublevector( name="Origin", default_values=[0.0, 0.0, 0.0], ) def SetOrigin(self, ox, oy, oz): SGeMSGridReader.SetOrigin(self, ox, oy, oz)
class PVGeoDelimitedTextReader(DelimitedTextReader): def __init__(self): DelimitedTextReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml( DelimitedTextReader.extensions, readerDescription=DelimitedTextReader.description)) def AddFileName(self, fname): DelimitedTextReader.AddFileName(self, fname) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): DelimitedTextReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return DelimitedTextReader.GetTimestepValues(self) @smproperty.stringvector(name="Delimiter", default_values=" ") def SetDelimiter(self, deli): DelimitedTextReader.SetDelimiter(self, deli) @smproperty.xml( _helpers.getPropertyXml( name='Use Split on Whitespace', command='SetSplitOnWhiteSpace', default_values=False, help= 'A boolean to override the Delimiter_Field and use whitespace as delimiter.' )) def SetSplitOnWhiteSpace(self, flag): DelimitedTextReader.SetSplitOnWhiteSpace(self, flag) @smproperty.intvector(name="SkipRows", default_values=0) def SetSkipRows(self, skip): DelimitedTextReader.SetSkipRows(self, skip) @smproperty.stringvector(name="Comments", default_values="!") def SetComments(self, identifier): DelimitedTextReader.SetComments(self, identifier) @smproperty.xml( _helpers.getPropertyXml( name='Has Titles', command='SetHasTitles', default_values=True, help= 'A boolean for if the delimited file has header titles for the data arrays.' )) def SetHasTitles(self, flag): DelimitedTextReader.SetHasTitles(self, flag)
class PVGeoGSLibReader(GSLibReader): def __init__(self): GSLibReader.__init__(self) #### Seters and Geters #### # @smproperty.stringvector(name="FileNames", panel_visibility="advanced") # @smdomain.filelist() # @smhint.filechooser(extensions="sgems dat geoeas gslib GSLIB txt SGEMS", file_description="GSLib Tables") @smproperty.xml( _helpers.getFileReaderXml("sgems dat geoeas gslib GSLIB txt SGEMS", readerDescription='GSLib Table')) def AddFileName(self, fname): GSLibReader.AddFileName(self, fname) @smproperty.stringvector(name="Delimiter", default_values=" ") def SetDelimiter(self, deli): GSLibReader.SetDelimiter(self, deli) @smproperty.xml( _helpers.getPropertyXml( name='Use Tab Delimiter', command='SetUseTab', default_values=False, help= 'A boolean to override the Delimiter_Field and use a Tab delimiter.' )) def SetUseTab(self, flag): GSLibReader.SetUseTab(self, flag) @smproperty.intvector(name="SkipRows", default_values=0) def SetSkipRows(self, skip): GSLibReader.SetSkipRows(self, skip) @smproperty.stringvector(name="Comments", default_values="#") def SetComments(self, identifier): GSLibReader.SetComments(self, identifier) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): GSLibReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return GSLibReader.GetTimestepValues(self) @smproperty.xml( """<Property name="Print File Header" command="PrintFileHeader" panel_widget="command_button"/>""" ) def PrintFileHeader(self): print(GSLibReader.GetFileHeader(self)) return 1
class PVGeoGSLibReader(GSLibReader): def __init__(self): GSLibReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml(GSLibReader.extensions, readerDescription=GSLibReader.description)) def AddFileName(self, fname): GSLibReader.AddFileName(self, fname) @smproperty.stringvector(name="Delimiter", default_values=" ") def SetDelimiter(self, deli): GSLibReader.SetDelimiter(self, deli) @smproperty.xml( _helpers.getPropertyXml( name='Use Split on Whitespace', command='SetSplitOnWhiteSpace', default_values=False, help= 'A boolean to override the Delimiter_Field and use whitespace as delimiter.' )) def SetSplitOnWhiteSpace(self, flag): GSLibReader.SetSplitOnWhiteSpace(self, flag) @smproperty.intvector(name="SkipRows", default_values=0) def SetSkipRows(self, skip): GSLibReader.SetSkipRows(self, skip) @smproperty.stringvector(name="Comments", default_values="!") def SetComments(self, identifier): GSLibReader.SetComments(self, identifier) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): GSLibReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return GSLibReader.GetTimestepValues(self) @smproperty.xml( """<Property name="Print File Header" command="PrintFileHeader" panel_widget="command_button"/>""" ) def PrintFileHeader(self): print(GSLibReader.GetFileHeader(self)) return 1
class PVGeoSurferGridReader(SurferGridReader): def __init__(self): SurferGridReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml("sgems dat geoeas gslib GSLIB txt SGEMS", readerDescription='GSLib Table')) def AddFileName(self, fname): SurferGridReader.AddFileName(self, fname) @smproperty.stringvector(name='DataName', default_values='Data') def SetDataName(self, dataName): SurferGridReader.SetDataName(self, dataName)
class PVGeoMadagascarReader(MadagascarReader): def __init__(self): MadagascarReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml( MadagascarReader.extensions, readerDescription=MadagascarReader.description)) def AddFileName(self, fname): MadagascarReader.AddFileName(self, fname) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): MadagascarReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return MadagascarReader.GetTimestepValues(self) @smproperty.xml( _helpers.getDropDownXml('Endian', 'SetEndian', ['Native', 'Little-Endian', 'Big-Endian'], help='This is the type memory endianness.')) def SetEndian(self, endian): MadagascarReader.SetEndian(self, endian) @smproperty.xml( _helpers.getDropDownXml('DataType', 'SetDataType', ['Float64', 'Float32', 'Integer4'], help='This is data type to read.')) def SetDataType(self, dtype): MadagascarReader.SetDataType(self, dtype) @smproperty.stringvector(name='DataName', default_values='Data') def SetDataName(self, dataName): MadagascarReader.SetDataName(self, dataName)
class PVGeoXYZTextReader(XYZTextReader): def __init__(self): XYZTextReader.__init__(self) #### Seters and Geters #### @smproperty.xml( _helpers.getFileReaderXml(XYZ_EXTS, readerDescription=XYZ_DESC)) def AddFileName(self, fname): XYZTextReader.AddFileName(self, fname) @smproperty.doublevector(name="TimeDelta", default_values=1.0, panel_visibility="advanced") def SetTimeDelta(self, dt): XYZTextReader.SetTimeDelta(self, dt) @smproperty.doublevector(name="TimestepValues", information_only="1", si_class="vtkSITimeStepsProperty") def GetTimestepValues(self): """This is critical for registering the timesteps""" return XYZTextReader.GetTimestepValues(self) @smproperty.stringvector(name="Delimiter", default_values=" ") def SetDelimiter(self, deli): XYZTextReader.SetDelimiter(self, deli) @smproperty.xml( _helpers.getPropertyXml( name='Use Tab Delimiter', command='SetUseTab', default_values=False, help= 'A boolean to override the Delimiter_Field and use a Tab delimiter.' )) def SetUseTab(self, flag): XYZTextReader.SetUseTab(self, flag) @smproperty.intvector(name="SkipRows", default_values=0) def SetSkipRows(self, skip): XYZTextReader.SetSkipRows(self, skip) @smproperty.stringvector(name="Comments", default_values="#") def SetComments(self, identifier): XYZTextReader.SetComments(self, identifier)
class PVGeoOMFReader(OMFReader): def __init__(self): OMFReader.__init__(self) #### Seters and Geters #### # TODO: check this to make sure not time varying @smproperty.xml(_helpers.getFileReaderXml(OMFReader.extensions, readerDescription=OMFReader.description)) def AddFileName(self, fname): OMFReader.AddFileName(self, fname) # Array selection API is typical with readers in VTK # This is intended to allow ability for users to choose which arrays to # load. To expose that in ParaView, simply use the # smproperty.dataarrayselection(). # This method **must** return a `vtkDataArraySelection` instance. @smproperty.dataarrayselection(name="Project Data") def GetDataSelection(self): return OMFReader.GetDataSelection(self)