import geopandas as gpd from shapely.geometry import Polygon, MultiPolygon from shapely.geometry.polygon import orient input_file = '../data/geojson_layers/output_layer_6.geojson' output_file = '../data/output_layer_6.geojson.geojson' gdf = gpd.read_file(input_file) if gdf.crs is None: gdf.set_crs(epsg=3857, inplace=True) gdf = gdf.to_crs(epsg=4326) def reorient_geometry(geom): if geom.is_empty: return geom elif geom.geom_type == 'Polygon': return orient(geom, sign=1.0) elif geom.geom_type == 'MultiPolygon': reoriented_polygons = [orient(polygon, sign=1.0) for polygon in geom.geoms] return MultiPolygon(reoriented_polygons) else: return geom gdf['geometry'] = gdf['geometry'].apply(reorient_geometry) gdf.to_file(output_file, driver='GeoJSON')