Ejemplo n.º 1
0
class NDCubeViewerController(ViewerController, MPLCoordinatesMixin):
    viewer_config = ViewerConfig().setMenuPath(
        "File/Open NDCube").setMultiFile(True)

    def __init__(self, model):
        ViewerController.__init__(self)

        self._model = model
        self._view = NDCubeView()
        self._view.updateModel(self._model)

        MPLCoordinatesMixin.__init__(self)

    @classmethod
    def fromFile(cls, files: str) -> 'ViewerController':
        cubes = [NDCube(getdata(f), WCS(getheader(f))) for f in files]
        if len(cubes) == 1:
            cube = cubes[0]
        else:
            cube = NDCubeSequence(cubes)
        model = NDCubeModel(cube, files)
        return cls(model)

    @classmethod
    def fromModel(cls, model: DataModel) -> 'ViewerController':
        return cls(model)

    @property
    def model(self) -> DataModel:
        return self._model

    @property
    def view(self) -> Viewer:
        return self._view

    def updateModel(self, model):
        self._view.updateModel(model)
        self._model = model

    def getTitle(self) -> str:
        return str(self._model.title)

    @property
    def data_type(self) -> str:
        return DataType.NDCUBE

    @property
    def viewer_type(self) -> str:
        return ViewerType.MPL
Ejemplo n.º 2
0
 def viewer_config(self) -> ViewerConfig:
     return ViewerConfig().setMenuPath("File/Open SunPy Map/MPL")
Ejemplo n.º 3
0
 def viewer_config(self) -> ViewerConfig:
     return ViewerConfig().setMenuPath("File/Open 2D FITS/MPL")
Ejemplo n.º 4
0
 def viewer_config(self) -> ViewerConfig:
     return ViewerConfig().setMenuPath(
         "File/Open SunPy Composite Map/From File").setMultiFile(True)
Ejemplo n.º 5
0
 def viewer_config(self) -> ViewerConfig:
     return ViewerConfig().setMenuPath(
         "File/Open SunPy Map/Ginga").addRequiredPackage("ginga")
Ejemplo n.º 6
0
 def viewer_config(self) -> ViewerConfig:
     return ViewerConfig().setMenuPath("File/Open SunPy Timeseries")