https://github.com/deepaksilaych/preciptech
https://github.com/deepaksilaych/preciptech
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/deepaksilaych/preciptech
- Owner: DeepakSilaych
- Created: 2025-01-24T22:54:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-24T23:56:14.000Z (over 1 year ago)
- Last Synced: 2025-02-09T04:41:09.382Z (over 1 year ago)
- Language: JavaScript
- Size: 77.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PrecipTech
A modern web application for calculating precipitation at any point using various interpolation methods.

## Features
- Interactive map interface for adding stations and selecting target points
- Calculate precipitation at any point using multiple methods:
- Arithmetic Mean
- Normal Ratio
- Inverse Distance Weighting (IDW)
- Thiessen Polygon Method
- Isohyetal Method
- Visual representation of results with:
- Color-coded station markers
- Thiessen polygons visualization
- Isohyetal contours
- Dynamic result map showing:
- Station locations and values
- Target point
- Method-specific visualization
- Responsive design that works on desktop and mobile
## Installation
1. Clone the repository:
```bash
git clone https://github.com/deepaksilaych/preciptech.git
cd preciptech
```
2. Install dependencies:
```bash
npm install
```
3. Start the development server:
```bash
npm start
```
4. Open [http://localhost:3000](http://localhost:3000) in your browser
## Usage
1. **Add Precipitation Stations**:
- Click the "Add Station" button (blue)
- Click on the map or enter coordinates manually
- Enter the precipitation value for each station
2. **Set Target Point**:
- Click the "Set Target Point" button (green)
- Click on the map or enter coordinates manually
3. **Calculate Precipitation**:
- Select a calculation method
- Click "Calculate" to see results
- View the visualization on the result map
## Calculation Methods
### 1. Arithmetic Mean
Simple average of all station values. Best for:
- Uniform precipitation distribution
- Stations evenly distributed
- Small areas
### 2. Normal Ratio
Weighted average based on normal annual precipitation. Best for:
- Areas with varying precipitation patterns
- Long-term data available
### 3. Inverse Distance Weighting (IDW)
Weights stations based on distance from target. Best for:
- Irregular station distribution
- Gradual precipitation changes
### 4. Thiessen Polygon
Area-weighted average using Voronoi diagrams. Best for:
- Non-uniform station distribution
- Medium to large areas
- When station density varies
### 5. Isohyetal
Uses precipitation contours. Best for:
- Complex terrain
- When topographic effects are important
- Dense station network
## Technologies Used
- React
- Leaflet & React-Leaflet for maps
- D3.js for visualizations
- Tailwind CSS for styling
## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- Thiessen Polygon method by A.H. Thiessen
- OpenStreetMap for map tiles
- React and D3.js communities for excellent tools