Пример #1
0
def make_renderer(nodes, use_binary_transport=False):
    """Creates the pydeck visualization for rendering"""
    view_state = pydeck.ViewState(
        offset=[0, 0], latitude=None, longitude=None, bearing=None, pitch=None, zoom=10,
    )

    views = [pydeck.View(type="OrbitView", controller=True)]

    nodes_layer = pydeck.Layer(
        "PointCloudLayer",
        nodes,
        get_position="position",
        get_normal=[10, 100, 10],
        get_color="color",
        pickable=True,
        # Set use_binary_transport to `True`
        use_binary_transport=use_binary_transport,
        auto_highlight=True,
        highlight_color=[255, 255, 0],
        radius=50,
    )

    return pydeck.Deck(
        layers=[nodes_layer],
        initial_view_state=view_state,
        views=views,
        map_provider=None,
    )
Пример #2
0
 def __init__(self, **params):
     """
     initialize pydeck object, and set a listener on self.data
     """
     super(PanelDeck, self).__init__(**params)
     self._view_state = pdk.ViewState(**self.spec["initialViewState"],
                                      bearing=0.45)
     self._layers = pdk.Layer("PolygonLayer",
                              data=self.data,
                              **self.spec["layers"][0])
     self._tooltip = {"html": self.get_tooltip_html()}
     self._deck = pdk.Deck(
         mapbox_key=self.spec["mapboxApiAccessToken"],
         views=[
             pdk.View(
                 type="MapView",
                 controller=True,
                 height="100%",
                 width="100%",
             )
         ],
         layers=[self._layers],
         initial_view_state=self._view_state,
         tooltip=self._tooltip,
     )
     if self.spec["map_style"]:
         self._deck.map_style = self.spec["map_style"]
     self.pane = pn.pane.DeckGL(
         self._deck,
         sizing_mode=self.sizing_mode,
         height=self.height,
         css_classes=["deck-chart"],
     )
     self.param.watch(self._update, ["data"])
Пример #3
0
    extruded=True,
    coverage=1,
)

# Set the viewport location
view_state = pdk.ViewState(
    longitude=-1.415,
    latitude=52.2323,
    zoom=6,
    min_zoom=5,
    max_zoom=15,
    pitch=40.5,
    bearing=-27.36,
)

map_view = pdk.View("MapView", width="75%", height="600px", controller=True)

# Render
r = pdk.Deck(
    layers=[layer],
    initial_view_state=view_state,
    mapbox_key=mapbox_api_token,
    views=[map_view],
)

app = dash.Dash(__name__)

app.layout = html.Div(
    dash_deck.DeckGL(r.to_json(),
                     id="deck-gl",
                     tooltip=True,
Пример #4
0

def is_green(fuel_type):
    if fuel_type.lower() in ("nuclear", "water", "wind", "hydro", "biomass",
                             "solar", "geothermal"):
        return [0, 255, 0]
    return [255, 255, 0]


df["color"] = df["primary_fuel"].apply(is_green)

view_state = pydeck.ViewState(latitude=51.47, longitude=0.45, zoom=4)

layers = []
# Set height and width variables
view = pydeck.View(type="_GlobeView", controller=True, width=1000, height=700)

layers = [
    pydeck.Layer(
        "GeoJsonLayer",
        id="base-map",
        data=COUNTRIES,
        stroked=False,
        filled=True,
        get_line_color=[60, 60, 60],
        get_fill_color=[200, 200, 200],
    ),
    pydeck.Layer(
        "ColumnLayer",
        id="power-plant",
        data=df,
Пример #5
0
def build_deck(mode, pc_df, polygon_data):
    if mode == "first_person":
        view = pdk.View(type="FirstPersonView", controller=True)
        view_state = pdk.ViewState(latitude=0,
                                   longitude=0,
                                   bearing=-90,
                                   pitch=15)
        point_size = 10
    elif mode == "orbit":
        view = pdk.View(type="OrbitView", controller=True)
        view_state = pdk.ViewState(
            target=[0, 0, 1e-5],
            controller=True,
            zoom=23,
            rotation_orbit=-90,
            rotation_x=15,
        )
        point_size = 3

    else:
        view_state = pdk.ViewState(
            latitude=0,
            longitude=0,
            bearing=45,
            pitch=50,
            zoom=20,
            max_zoom=30,
            position=[0, 0, 1e-5],
        )
        view = pdk.View(type="MapView", controller=True)
        point_size = 1

    pc_layer = pdk.Layer(
        "PointCloudLayer",
        data=pc_df,
        get_position=["x", "y", "z"],
        get_color=[255, 255, 255],
        auto_highlight=True,
        pickable=False,
        point_size=point_size,
        coordinate_system=2,
        coordinate_origin=[0, 0],
    )

    box_layer = pdk.Layer(
        "PolygonLayer",
        data=polygon_data,
        stroked=True,
        pickable=True,
        filled=True,
        extruded=True,
        opacity=0.2,
        wireframe=True,
        line_width_min_pixels=1,
        get_polygon="polygon",
        get_fill_color="color",
        get_line_color=[255, 255, 255],
        get_line_width=0,
        coordinate_system=2,
        get_elevation="elevation",
    )

    tooltip = {"html": "<b>Label:</b> {name}"}

    r = pdk.Deck(
        [pc_layer, box_layer],
        initial_view_state=view_state,
        views=[view],
        tooltip=tooltip,
        map_provider=None,
    )

    return r
Пример #6
0
    extruded=True,
    coverage=1,
)

# Set the viewport location
view_state = pdk.ViewState(
    longitude=-1.415,
    latitude=52.2323,
    zoom=6,
    min_zoom=5,
    max_zoom=15,
    pitch=40.5,
    bearing=-27.36,
)

map_view = pdk.View("MapView", controller=True)

# Render
r = pdk.Deck(
    layers=[layer],
    initial_view_state=view_state,
    mapbox_key=mapbox_api_token,
    views=[map_view],
)

# Start building the layout here
styles = {
    "json-output": {
        "overflowY": "scroll",
        "height": "calc(50% - 25px)",
        "border": "thin lightgrey solid",
Пример #7
0
"""

import pydeck
import pandas as pd

DATA_URL = "https://raw.githubusercontent.com/ajduberstein/geo_datasets/master/small_waterfall.csv"
df = pd.read_csv(DATA_URL)

target = [df.x.mean(), df.y.mean(), df.z.mean()]

point_cloud_layer = pydeck.Layer(
    "PointCloudLayer",
    data=DATA_URL,
    get_position=["x", "y", "z"],
    get_color=["r", "g", "b"],
    get_normal=[0, 0, 15],
    auto_highlight=True,
    pickable=True,
    point_size=3,
)

view_state = pydeck.ViewState(target=target,
                              controller=True,
                              rotation_x=15,
                              rotation_orbit=30,
                              zoom=5.3)
view = pydeck.View(type="OrbitView", controller=True)

r = pydeck.Deck(point_cloud_layer, initial_view_state=view_state, views=[view])
r.to_html("point_cloud_layer.html", css_background_color="#add8e6")