rockglacierNET / EDA /explore_shapefile.py
kabiriitb's picture
Upload folder using huggingface_hub
80e070e verified
Raw History Blame Contribute Delete
1.74 kB
# %%
import geopandas as gpd
import matplotlib.pyplot as plt
import os
# %%
# Define paths
SHAPEFILE_PATH = r"D:\RockGlacier_Project\raw_data\Final_merged01\Final_merged01.shp"
OUTPUT_DIR = r"D:\RockGlacier_Project\EDA"
# %%
print(f"--- Exploring Shapefile: {SHAPEFILE_PATH} ---")
# Check if file exists
if not os.path.exists(SHAPEFILE_PATH):
print(f"Error: Shapefile not found at {SHAPEFILE_PATH}")
else:
# Load shapefile
print("Loading data...")
gdf = gpd.read_file(SHAPEFILE_PATH)
# %%
# 1. Basic Information
if 'gdf' in locals():
print("\n[1] Basic Information:")
print(f"Total number of features (polygons): {len(gdf)}")
print(f"Coordinate Reference System (CRS): {gdf.crs}")
# %%
# 2. Data Attributes
if 'gdf' in locals():
print("\n[2] Data Attributes (Columns):")
print(gdf.columns.tolist())
print("\n[3] First 5 Rows:")
print(gdf.head())
# %%
# 3. Basic Statistics for numeric columns
if 'gdf' in locals():
print("\n[4] Basic Statistics:")
print(gdf.describe())
# %%
# 4. Plotting the Shapefile
if 'gdf' in locals():
print("\n[5] Generating Plot...")
fig, ax = plt.subplots(figsize=(10, 10))
# Plotting the geometries
gdf.plot(ax=ax, edgecolor='blue', facecolor='lightblue', linewidth=0.5, alpha=0.7)
ax.set_title("Rock Glacier Polygons - Final_merged01", fontsize=15)
ax.set_xlabel("Easting / Longitude")
ax.set_ylabel("Northing / Latitude")
# Save the plot
os.makedirs(OUTPUT_DIR, exist_ok=True)
plot_path = os.path.join(OUTPUT_DIR, "rock_glaciers_plot.png")
plt.savefig(plot_path, dpi=300, bbox_inches='tight')
print(f"Plot saved successfully to: {plot_path}")
# Show the plot
plt.show()