A comprehensive desktop application for viewing, editing, and analyzing ESRI Shapefiles. Designed specifically for agronomists and GIS professionals working with agricultural and spatial data.
Developer: Bobby Azad Release Date: September 7, 2025 Updated Date: January 25, 2026 Version: 1.1
Below are some screenshots showcasing the app.
| Main Window | Map Viewer |
|---|---|
![]() |
![]() |
| Statistics | Spatial Tools |
![]() |
![]() |
- Google Maps-like navigation with smooth pan and zoom
- Mouse wheel zoom centered on cursor position
- Real-time satellite basemap integration using Esri World Imagery
- Dynamic tile loading - basemap tiles reload automatically when navigating
- Multiple colormaps for data visualization
- Transparency control for overlay layers
- Arrow key navigation for precise positioning
- Full-featured table editor with sortable columns
- Add/Delete columns and rows dynamically
- Mass update operations - apply arithmetic operations to multiple columns
- Text filtering - quickly find features by attribute values
- Dark-themed interface for comfortable long-term use
- Auto-sizing columns for optimal viewing
- Tabbed interface with multiple analysis views
- General information - feature count, geometry types, CRS details
- Spatial information - bounding box, area statistics
- Attribute statistics - data types, unique values, min/max ranges
- Visual charts - histograms, pie charts, and spatial overviews
- Export-ready statistical summaries
- Buffer, dissolve, clip, intersect, union operations
- Calculate area and length attributes
- Automatic CRS alignment for overlay tools
- Export GeoJSON for web and GIS workflows
- Export GeoPackage for modern GIS storage
- Export CSV (attributes only) for spreadsheets
- Export map view to PNG/PDF
- Layout designer with title, legend, scale bar, and north arrow
- High-quality PNG/PDF output for reports
- Modern interface with intuitive controls
- Keyboard shortcuts for common operations
- Status bar with real-time feedback
- High-end About dialog with full application information
- Modular architecture for easy maintenance and extension
- Python 3.12 or compatible version
- pixi package manager (recommended) or conda
-
Install Pixi (if not already installed):
curl -sSL https://prefix.dev/install.sh | bash -
Clone or download this repository:
git clone <repository-url> cd Shapefile-Viewer-Editor-for-Agronomy
-
Install dependencies using pixi:
pixi install
-
Run the application:
pixi run python main.py
If you prefer using conda directly:
-
Create a new environment:
conda create -n shapefile-editor python=3.12 conda activate shapefile-editor
-
Install dependencies:
conda install -c conda-forge geopandas contextily matplotlib-base pyside6
-
Run the application:
python main.py
The application uses the following packages (all managed through conda-forge):
| Package | Version | Purpose |
|---|---|---|
| python | 3.12.* | Programming language |
| geopandas | >=1.1.1, <2 | Geospatial data handling |
| contextily | >=1.6.2, <2 | Basemap tile provider |
| matplotlib-base | >=3.8.0, <4 | Plotting and visualization |
| pyside6 | >=6.6.0, <7 | Qt6 GUI framework |
Additional dependencies installed automatically:
- pandas - Data manipulation
- shapely - Geometric operations
- pyproj - Coordinate system transformations
- rasterio - Raster data support
-
Launch the application:
pixi run python main.py
-
Open a shapefile:
- Click
File β Open Shapefile(or pressCtrl+O) - Navigate to your
.shpfile - The attribute table will load automatically
- Click
-
View on map:
- Click the
View Mapbutton - Use your mouse to pan (drag) and zoom (scroll wheel)
- Use the toolbar buttons for additional navigation tools
- Click the
-
Edit attributes:
- Click any cell in the table to edit
- Use
Add ColumnorDelete Columnbuttons - Apply filters to find specific features
-
Save changes:
- Click
File β Save Shapefile As...(or pressCtrl+S) - Choose a new location or overwrite the original
- Click
- Mouse Wheel: Zoom in/out centered on cursor
- Pan Tool (toolbar): Drag to move the map
- Zoom Tool (toolbar): Click and drag to zoom to rectangle
- Arrow Buttons: Pan in cardinal directions
- Reset View: Return to original extent
- Zoom Slider: Fine-tune zoom level
- Transparency Slider: Adjust overlay opacity
- Click
Mass Updatebutton - Select columns to update
- Choose operation: Add, Subtract, Multiply, or Divide
- Enter value
- Click OK to apply
- Access via
Tools β Show Statistics(or pressCtrl+T) - General Info: Dataset overview
- Spatial Info: Bounding box and area calculations
- Attributes: Detailed column statistics
- Charts: Visual analysis with histograms and plots
- Access via
Tools Γ’β β Spatial Tools - Buffer: Create offset geometries
- Dissolve: Merge features by attribute
- Clip/Intersect/Union: Overlay with another layer
- Area/Length: Add measurement fields to attributes
File β Export GeoJSON...File β Export GeoPackage...File β Export Attributes CSV...Map Viewer β Export PNG/PDF
Map Viewer Γ’β β Layout Designer- Add title, legend, scale bar, and north arrow
- Export layout to PNG/PDF
Shapefile-Viewer-Editor-for-Agronomy/
β
βββ main.py # Main application entry point
βββ map_viewer.py # Interactive map viewer module
βββ statistics_viewer.py # Enhanced statistics module
βββ about_dialog.py # Professional About dialog
βββ spatial_tools.py # Spatial tools dialog
βββ layout_designer.py # Map layout designer
βββ pixi.toml # Pixi package configuration
βββ pixi.lock # Locked dependency versions
βββ README.md # This file
β
βββ .pixi/ # Pixi environment (auto-generated)
βββ envs/default/ # Virtual environment
| Shortcut | Action |
|---|---|
Ctrl+O |
Open Shapefile |
Ctrl+S |
Save Shapefile As... |
Ctrl+T |
Show Statistics |
Ctrl+Q |
Exit Application |
F1 |
About Dialog |
- ESRI Shapefile (.shp with associated .shx, .dbf, .prj files)
- All geometry types: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon
- ESRI Shapefile (.shp format)
- Automatic detection of CRS from .prj file
- On-the-fly reprojection to Web Mercator (EPSG:3857) for basemap display
- Preserves original CRS when saving
- Operating System: Windows, macOS, or Linux
- RAM: Minimum 4GB (8GB+ recommended for large datasets)
- Disk Space: ~500MB for application and dependencies
- Display: 1280x720 minimum resolution
- Internet: Required for downloading basemap tiles
- Basemap tiles require internet connection
- Very large shapefiles (>100,000 features) may experience slow rendering
- Complex polygons may take time to draw on initial map load
- Area calculations only accurate for projected coordinate systems
- Ensure pixi is installed:
pixi --version - Try reinstalling dependencies:
pixi install --force - Check Python version:
pixi run python --version
- Check internet connection
- Firewall may be blocking tile requests
- Try switching to a different basemap provider (code modification required)
- Ensure all required files are present (.shp, .shx, .dbf)
- Check file permissions
- Verify shapefile is not corrupted using QGIS or another GIS tool
- Close other applications to free memory
- Try filtering data to show fewer features
- Consider simplifying complex geometries
- Agronomists managing crop zones or soil regions
- Researchers analyzing field boundaries and agricultural zones
- Farmers needing a simple tool to adjust field maps
- GIS enthusiasts looking for an easy, free alternative to edit shapefiles
- Students learning about geospatial data analysis
- β¨ Upgraded from PyQt5 to PySide6 (Qt6)
- πΊοΈ Added Google Maps-like navigation with dynamic basemap loading
- π±οΈ Implemented mouse wheel zoom centered on cursor
- π¦ Created modular architecture with separate files
- π Enhanced statistics viewer with tabbed interface and charts
- π¨ Professional About dialog
- π Improved UI with better styling
- β¨οΈ Added keyboard shortcuts
- π§ Updated dependencies to latest stable versions
- Basic shapefile viewing and editing
- Simple map viewer
- Attribute table editor
- Mass update operations
This is a specialized tool developed for agronomic applications. If you find bugs or have feature requests, please open an issue or contact the developer.
This project is licensed under the MIT License.
See the LICENSE file for details.
Bobby Azad
Built with:
- Python - Programming language
- PySide6 - Qt6 Python bindings
- GeoPandas - Geospatial data processing
- Matplotlib - Data visualization
- Contextily - Basemap tile provider
- Esri - World Imagery basemap tiles
Enjoy editing your shapefiles! πΎπΊοΈ



