Exemple #1
0
    def _create_component(self):
        rect1 = Region("orchid", position=[50, 50])
        rect2 = Region("cornflowerblue", position=[200, 50])
        rect1.overlays.append(Overlay("One", component=rect1))
        rect2.overlays.append(Overlay("Two", component=rect2))
        container1 = OverlayPlotContainer(bounds=[400, 400], resizable="")
        container1.add(rect1, rect2)
        container1.bgcolor = (0.60, 0.98, 0.60, 0.5)  # "palegreen"

        rect3 = Region("purple", position=[50, 50])
        rect4 = Region("teal", position=[200, 50])
        rect3.overlays.append(Overlay("Three", component=rect3))
        rect4.overlays.append(Overlay("Four", component=rect4))
        container2 = OverlayPlotContainer(bounds=[400, 400], resizable="")
        container2.add(rect3, rect4)
        container2.bgcolor = "navajowhite"
        container2.position = [200, 200]

        top_container = OverlayPlotContainer()
        top_container.add(container1, container2)
        return top_container
Exemple #2
0
    def _create_window(self):
        rect1 = Region("orchid", position=[50, 50])
        rect2 = Region("cornflowerblue", position=[200, 50])
        rect1.overlays.append(Overlay("One", component=rect1))
        rect2.overlays.append(Overlay("Two", component=rect2))
        container1 = OverlayPlotContainer(bounds=[400, 400], resizable="")
        container1.add(rect1, rect2)
        container1.bgcolor = (0.60, 0.98, 0.60, 0.5) #"palegreen"

        rect3 = Region("purple", position=[50, 50])
        rect4 = Region("teal", position=[200, 50])
        rect3.overlays.append(Overlay("Three", component=rect3))
        rect4.overlays.append(Overlay("Four", component=rect4))
        container2 = OverlayPlotContainer(bounds=[400, 400], resizable="")
        container2.add(rect3, rect4)
        container2.bgcolor = "navajowhite"
        container2.position = [200, 200]

        top_container = OverlayPlotContainer()
        top_container.add(container1, container2)

        return Window(self, -1, component=top_container)
Exemple #3
0
    def _plot_default(self):
        stations = self.stations
        lon, lat = self._proj(stations['LON'].view(numpy.ndarray),
                              stations['LAT'].view(numpy.ndarray))

        shift = self._shift
        lon = (lon + shift / 2.) / (shift)
        lat = (lat + shift / 2.) / (shift)

        plot = Plot(ArrayPlotData(index=lon, value=lat))
        plot.plot(
            ("index", "value"),
            type="scatter",
            name="stations",
            marker="dot",
            outline_color='black',
            color=(1., 0., 0., 0.2),
            line_width=1.,
            marker_size=1,
        )

        mbtiles_fname = os.path.join('Data', 'tiles.mbtiles')
        if os.path.exists(mbtiles_fname):
            tile_cache = MBTileManager(filename=mbtiles_fname,
                                       min_level=0,
                                       max_level=7)
        else:
            tile_cache = HTTPTileManager(
                min_level=0,
                max_level=6,
                server='oatile1.mqcdn.com',
                url='/tiles/1.0.0/sat/%(zoom)d/%(row)d/%(col)d.jpg',
            )

        # Right now, some of the tools are a little invasive, and we need the
        # actual ScatterPlot object to give to them
        scatter = plot.plots['stations'][0]

        map = Map(scatter, tile_cache=tile_cache, alpha=0.8, zoom_level=2)
        scatter.underlays.append(map)

        map.on_trait_change(lambda new: self._update_scatter(scatter, new),
                            'zoom_level')
        self._update_scatter(scatter, map.zoom_level)

        lasso_selection = LassoSelection(component=scatter,
                                         selection_datasource=scatter.index)

        scatter.tools.append(lasso_selection)
        scatter.overlays.append(
            LassoOverlay(component=scatter,
                         selection_fill_color='lawngreen',
                         selection_border_color='lightgreen',
                         selection_alpha=0.5,
                         selection_border_width=2.0,
                         lasso_selection=lasso_selection))

        scatter.overlays.append(
            ScatterInspectorOverlay(scatter,
                                    selection_metadata_name='selection',
                                    selection_marker_size=4,
                                    selection_color="lawngreen"))
        scatter.index.on_trait_change(self._metadata_handler,
                                      "metadata_changed")

        scatter.tools.append(PanTool(scatter, drag_button='right'))
        scatter.tools.append(ZoomTool(scatter))

        plot.index_axis.title = "Longitude"
        plot.index_axis.tick_label_formatter = self._convert_lon
        plot.value_axis.title = "Latitude"
        plot.value_axis.tick_label_formatter = self._convert_lat

        plot.padding_right = plot.padding_top = 2

        container = OverlayPlotContainer(use_backbuffer=True,
                                         bgcolor="sys_window")
        container.add(plot)
        container.bgcolor = "sys_window"

        return container
Exemple #4
0
    def _plot_default(self):
        stations = self.stations
        lon, lat = self._proj(stations["LON"].view(numpy.ndarray), stations["LAT"].view(numpy.ndarray))

        shift = self._shift
        lon = (lon + shift / 2.0) / (shift)
        lat = (lat + shift / 2.0) / (shift)

        plot = Plot(ArrayPlotData(index=lon, value=lat))
        plot.plot(
            ("index", "value"),
            type="scatter",
            name="stations",
            marker="dot",
            outline_color="black",
            color=(1.0, 0.0, 0.0, 0.2),
            line_width=1.0,
            marker_size=1,
        )

        mbtiles_fname = os.path.join("Data", "tiles.mbtiles")
        if os.path.exists(mbtiles_fname):
            tile_cache = MBTileManager(filename=mbtiles_fname, min_level=0, max_level=7)
        else:
            tile_cache = HTTPTileManager(
                min_level=0,
                max_level=6,
                server="oatile1.mqcdn.com",
                url="/tiles/1.0.0/sat/%(zoom)d/%(row)d/%(col)d.jpg",
            )

        # Right now, some of the tools are a little invasive, and we need the
        # actual ScatterPlot object to give to them
        scatter = plot.plots["stations"][0]

        map = Map(scatter, tile_cache=tile_cache, alpha=0.8, zoom_level=2)
        scatter.underlays.append(map)

        map.on_trait_change(lambda new: self._update_scatter(scatter, new), "zoom_level")
        self._update_scatter(scatter, map.zoom_level)

        lasso_selection = LassoSelection(component=scatter, selection_datasource=scatter.index)

        scatter.tools.append(lasso_selection)
        scatter.overlays.append(
            LassoOverlay(
                component=scatter,
                selection_fill_color="lawngreen",
                selection_border_color="lightgreen",
                selection_alpha=0.5,
                selection_border_width=2.0,
                lasso_selection=lasso_selection,
            )
        )

        scatter.overlays.append(
            ScatterInspectorOverlay(
                scatter, selection_metadata_name="selection", selection_marker_size=4, selection_color="lawngreen"
            )
        )
        scatter.index.on_trait_change(self._metadata_handler, "metadata_changed")

        scatter.tools.append(PanTool(scatter, drag_button="right"))
        scatter.tools.append(ZoomTool(scatter))

        plot.index_axis.title = "Longitude"
        plot.index_axis.tick_label_formatter = self._convert_lon
        plot.value_axis.title = "Latitude"
        plot.value_axis.tick_label_formatter = self._convert_lat

        plot.padding_right = plot.padding_top = 2

        container = OverlayPlotContainer(use_backbuffer=True, bgcolor="sys_window")
        container.add(plot)
        container.bgcolor = "sys_window"

        return container