[Python] Geopandas combine lines and concatenate

Discussão em 'Python' iniciado por Stack, Setembro 24, 2024.

  1. Stack

    Stack Membro Participativo

    I have a geodataframe. I want to join the overlapping features and concatenate the "Text" field. I have tried to do it with dissolve but it doesn't work

    import geopandas as gpd
    import pandas as pd
    from shapely.geometry import MultiLineString
    data = {
    "type": "FeatureCollection",
    "name": "lines",
    "features": [
    { "type": "Feature", "properties": { "Text": "A" },
    "geometry": { "type": "MultiLineString",
    "coordinates": [ [ [ 0.0, 0.0, 0.0 ], [ 10.0, 0.0, 0.0 ] ] ] } },
    { "type": "Feature", "properties": { "Text": "B" },
    "geometry": { "type": "MultiLineString",
    "coordinates": [ [ [ 0.0, 0.0, 0.0 ], [ 16.37797725526616, 0.0, 0.0 ] ] ] } },
    { "type": "Feature", "properties": { "Text": "C" },
    "geometry": { "type": "MultiLineString",
    "coordinates": [ [ [ 0.0, 0.0, 0.0 ], [ 4.247235166607424, 7.041334981156978, 0.0 ],
    [ 16.742636807728559, 8.986970615165774, 0.0 ] ] ] } },
    { "type": "Feature", "properties": { "Text": "D" },
    "geometry": { "type": "MultiLineString",
    "coordinates": [ [ [ 0.0, 0.0, 0.0 ], [ 4.247235166607424, 7.041334981156978, 0.0 ] ] ] } }
    ]
    }
    features = data['features']
    geometries = []
    properties = []
    for feature in features:
    coords_3d = feature['geometry']['coordinates']
    coords_2d = [[(x, y) for x, y, z in line] for line in coords_3d]
    multiline = MultiLineString(coords_2d)
    geometries.append(multiline)
    properties.append(feature['properties'])
    df = pd.DataFrame(properties)
    gdf = gpd.GeoDataFrame(df, geometry=geometries)


    What I'm looking for is:

    [​IMG]

    Combine overlapping features

    Continue reading...

Compartilhe esta Página