Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
Streamlit devuelve un error si se agrega get_elevation a ColumnLayer

Soy nuevo en streamlit y estoy tratando de mostrar una capa pydeck con columnas. Quiero que la altura de la columna sea la columna de rain (mm) que estoy proporcionando en un marco de datos, pero cada vez que uso get_evelation="rain (mm)" , aparece el siguiente error:

 Error: Function calls not allowed in JSON expressions at http://localhost:8501/static/js/7.f6560317.chunk.js:2:512302 at u (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512666) at http://localhost:8501/static/js/7.f6560317.chunk.js:2:512596 at Array.forEach (<anonymous>) at u (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512568) at u (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512673) at t.default (http://localhost:8501/static/js/7.f6560317.chunk.js:2:512250) at eh [as convertFunction] (http://localhost:8501/static/js/7.f6560317.chunk.js:2:1049691) at http://localhost:8501/static/js/7.f6560317.chunk.js:2:2778265 at y (http://localhost:8501/static/js/7.f6560317.chunk.js:2:2778495)

La función que estoy usando para renderizar mi mapa es la siguiente:

 def make_map2(data, lat, lon, zoom): column_layer = pdk.Layer( "ColumnLayer", data=data, get_position=["lon", "lat"], get_elevation="rain (mm)", elevation_scale=20, radius=2000, get_fill_color=[180, 0, 200, 140], pickable=True, auto_highlight=True, extruded=True ) tooltip={'html': 'Location: {location}</br> Date: {date} </br> Rainfall (mm): {rain_mm}</br> Type: {type}'} r = pdk.Deck(column_layer, initial_view_state={ "latitude": lat, "longitude": lon, "zoom": zoom, "pitch": 60 }, tooltip=tooltip, map_provider="mapbox", map_style='mapbox://styles/mapbox/light-v9', ) map2 = st.write(r) return map2

Los datos de entrada tienen esta estructura:

 date location lat lon rain (mm) type 0 2021-09-15 lowestoft 52.483 1.727 54.115513 predicted 1 2021-09-15 heathrow 51.479 -0.449 30.008739 predicted 2 2021-09-15 eastbourne 50.762 0.285 90.584396 predicted 3 2021-09-15 cambridge 52.245 0.102 51.445862 predicted 4 2021-09-15 manston 51.346 1.337 81.089737 predicted 5 2021-09-15 oxford 51.761 -1.262 39.420902 predicted
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esto podría ser tan simple como un argumento mal escrito:

get_evelation="rain (mm)" debería ser get_elevation="rain (mm)"


Editar: independientemente del nombre del argumento mal escrito, este error ocurre en la forma en que pydeck analiza los literales de cadena. pydeck asume que rain (mm) es una llamada de función y arroja un error. Nombrar la columna get_elevation sin espacios ni paréntesis permite que el ejemplo funcione:

 import pandas as pd import numpy as np import streamlit as st import pydeck as pdk df = pd.read_csv("~/Desktop/data.csv") #to prove hypothesis, make column name one continuous string with no extra characters df["rain_noparens"] = df["rain (mm)"] view = pdk.data_utils.compute_view(df[["lon", "lat"]]) view.pitch = 75 view.bearing = 60 column_layer = pdk.Layer( "ColumnLayer", data=df, get_position=["lon", "lat"], get_elevation="rain_noparens", elevation_scale=20, radius=2000, get_fill_color=[180, 0, 200, 140], pickable=True, auto_highlight=True, ) tooltip = { "html": "Location: {location}</br> Date: {date} </br> Rainfall (mm): {rain (mm)}</br> Type: {type}" } r = pdk.Deck( column_layer, initial_view_state=view, tooltip=tooltip, map_provider="mapbox", map_style="mapbox://styles/mapbox/light-v9", ) st.pydeck_chart(r)

Ver también: https://github.com/streamlit/streamlit/issues/3992

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda