Jia Yu created SEDONA-471: ----------------------------- Summary: SedonaKepler cannot work with Uber H3 hex since 1.5.1 Key: SEDONA-471 URL: https://issues.apache.org/jira/browse/SEDONA-471 Project: Apache Sedona Issue Type: Bug Reporter: Jia Yu
Follow the example in this notebook: [https://github.com/apache/sedona/blob/master/binder/ApacheSedonaSQL_SpatialJoin_AirportsPerCountry.ipynb] It shows the following error in the last step: ``` --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[14], line 1 ----> 1 sedona_kepler_h3 = SedonaKepler.create_map(df=hex_exploded_h3, name="h3") 2 sedona_kepler_h3 File /usr/local/lib/python3.10/dist-packages/sedona/maps/SedonaKepler.py:35, in SedonaKepler.create_map(cls, df, name, config) 33 kepler_map = KeplerGl() 34 if df is not None: ---> 35 SedonaKepler.add_df(kepler_map, df, name) 37 if config is not None: 38 kepler_map.config = config File /usr/local/lib/python3.10/dist-packages/sedona/maps/SedonaKepler.py:51, in SedonaKepler.add_df(cls, kepler_map, df, name) 42 @classmethod 43 def add_df(cls, kepler_map, df, name="unnamed"): 44 """ 45 Adds a SedonaDataFrame to a given map object. 46 :param kepler_map: Map object to add SedonaDataFrame to (...) 49 :return: Does not return anything, adds df directly to the given map object 50 """ ---> 51 geo_df = SedonaMapUtils.__convert_to_gdf__(df) 52 kepler_map.add_data(geo_df, name=name) File /usr/local/lib/python3.10/dist-packages/sedona/maps/SedonaMapUtils.py:37, in SedonaMapUtils.__convert_to_gdf__(cls, df, rename, geometry_col) 35 geo_df = gpd.GeoDataFrame(pandas_df, geometry=geometry_col) 36 if geometry_col != "geometry" and rename is True: ---> 37 geo_df.rename_geometry("geometry", inplace=True) 38 return geo_df File /usr/local/lib/python3.10/dist-packages/geopandas/geodataframe.py:389, in GeoDataFrame.rename_geometry(self, col, inplace) 356 def rename_geometry(self, col, inplace=False): 357 """ 358 Renames the GeoDataFrame geometry column to 359 the specified name. By default yields a new object. (...) 387 GeoDataFrame.set_geometry : set the active geometry 388 """ --> 389 geometry_col = self.geometry.name 390 if col in self.columns: 391 raise ValueError(f"Column named {col} already exists") File /usr/local/lib/python3.10/dist-packages/pandas/core/generic.py:5487, in NDFrame.__getattr__(self, name) 5480 if ( 5481 name not in self._internal_names_set 5482 and name not in self._metadata 5483 and name not in self._accessors 5484 and self._info_axis._can_hold_identifiers_and_holds_name(name) 5485 ): 5486 return self[name] -> 5487 return object.__getattribute__(self, name) File /usr/local/lib/python3.10/dist-packages/geopandas/geodataframe.py:233, in GeoDataFrame._get_geometry(self) 226 else: 227 msg += ( 228 "\nThere are no existing columns with geometry data type. You can " 229 "add a geometry column as the active geometry column with " 230 "df.set_geometry. " 231 ) --> 233 raise AttributeError(msg) 234 return self[self._geometry_column_name] AttributeError: You are calling a geospatial method on the GeoDataFrame, but the active geometry column ('geometry') is not present. There are no existing columns with geometry data type. You can add a geometry column as the active geometry column with df.set_geometry. ``` -- This message was sent by Atlassian Jira (v8.20.10#820010)