I'm trying to convert a spatial dataframe to a geopandas dataframe but get errors when the geometry contains 'curvedPaths'. If the geometry says 'paths' it works fine.
sdf = pd.DataFrame.spatial.from_featureclass("tp_master_lyr")
gdf = gpd.GeoDataFrame(sdf, geometry='SHAPE', crs=f"EPSG:{self.epsg_code}")
Create the sdf from a layer, then convert the gdf using the geometry field. When I read the sdf that works I see this:
0 1 B30 ... -43.801102 {"paths": [[[96887.0628000004, 4566105.1918],...
1 2 B30 ... -41.706207 {"paths": [[[963429.4271999998, 4566111.741800...
Testing another dataset, the one that doesn't work and gives KeyError: 'paths':
0 1 ... {"curvePaths": [[[777739.0449999999, 4321271.9...
1 2 ... {"curvePaths": [[[123521.7758999998, 4329860.0...
If the sdf has 'curvePaths' as the geometry type I get errors when trying to convert to a geodataframe. Any ideas how to get round this?
Perhaps the conversion is missing a piece to perform the required steps for curves. I do believe, however, shapely supports curves and geopandas uses shapely geometry.
If shape accuracy is not a concern, I would guess a quick way to get around this would be to generalize your shape data first before loading into a GeoDataFrame like so:
sdf["SHAPE"] = sdf.SHAPE.apply(lambda x: x.generalize(max_offset=10))
Where the max_offset is a value of your choosing.