0

I have these two shapefiles. [First shapefile with Provinces on link 1] [Second shapefile with Districts on link 2]

I need to join/merge these two shapefiles to return a map as below: [![Mozambique Districts as Map below]

moz_admin=1: https://drive.google.com/file/d/1MYNkuKFXP0dt76G9OgeBotjF5UmiRqEl/view?usp=sharing

moz_admin_district=[2]: https://drive.google.com/file/d/1idf5VKgN8PZgdoAcBVEcY9pDa1WYpg7-/view?usp=sharing

Mozambique Districts on link 3

What I have done so far:

import os
import geopandas as gpd

file = os.listdir(r'pathtofilefolder')
path = [os.path.join(r'folder', i) for i in file if ".shp" in i]

gdf = gpd.GeoDataFrame(pd.concat([gpd.read_file(i) for i in path], 
                        ignore_index=True), crs=gpd.read_file(path[0]).crs)

and

moz_admin.to_crs(moz_admin_district.crs, inplace=True) #Change projections
gpd.sjoin(moz_admin_district, moz_admin, how='union', op='within').shape #Join 2 shapefiles
gpd.sjoin(moz_admin_district, moz_admin, how='union', op='within').plot()

and

diffs = []
gdfs = [moz_admin, moz_admin_district]
    for idx, gdf in enumerate(gdfs):
    if idx < 2:
        diffs.append(gdf.symmetric_difference(gdfs[idx+1]).iloc[0])
diffs.append(moz_admin_district.iloc[0].geometry)

and

gdf = gpd.GeoDataFrame(pd.concat([moz_admin, moz_admin_district]))

and

from shapely.geometry import Polygon
res_union = gpd.overlay(moz_admin, moz_admin_district, how='union')

and

so = moz_admin.merge(moz_admin_district, on='ADM1_PT', how='inner')
df  = tab_df.merge(spatial_df, on='mukey', how='right')
sof = gpd.GeoDataFrame(so)

and

merged_master = gpd.GeoDataFrame(pd.merge(moz_admin, moz_admin_district, how='left', left_on="ADM1_PT", right_on="ADM1_PT"))
merged = merged_master[['ADM1_PT', 'ADM2_PT', 'geometry']]

and

so = gpd.GeoDataFrame(pd.concat([moz_admin, moz_admin_district], ignore_index=True))

and

sjoined_listings = gpd.sjoin(moz_admin_district, moz_admin, op='intersects')

and

merged=sjoin(moz_admin_district, moz_admin, how='left', op='intersects')

Without success!

0

1 Answer 1

1
#OVERLAP TWO SHAPEFILES INTO ONE

ax = moz_admin.plot(color='none', edgecolor='black', linewidths=1.5)
moz_admin_district.plot(ax=ax, color='none', edgecolor='grey', linewidths=0.5)

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.