thedynamicpacif
Improved image processing and added feature selection
5cf313a
raw
history blame
9.21 kB
<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ForestAI - Image to GeoJSON Processing</title>
<!-- Bootstrap CSS (Replit-themed) -->
<link rel="stylesheet" href="https://cdn.replit.com/agent/bootstrap-agent-dark-theme.min.css">
<!-- Leaflet CSS -->
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css"
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
crossorigin=""/>
<!-- Font Awesome for icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<!-- Custom CSS -->
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">
<i class="fas fa-tree"></i> ForestAI
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#about">About</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container mt-4">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h2><i class="fas fa-image"></i> Image to GeoJSON Processing Pipeline</h2>
</div>
<div class="card-body">
<p class="lead">
Upload an image to process and visualize as GeoJSON on a map.
</p>
<div class="alert alert-info">
<i class="fas fa-info-circle"></i> Supported formats: PNG, JPG, TIFF
</div>
<form id="uploadForm" class="mb-4">
<div class="mb-3">
<label for="imageFile" class="form-label">Select Image File</label>
<input class="form-control" type="file" id="imageFile" accept=".png,.jpg,.jpeg,.tif,.tiff">
</div>
<div class="mb-3">
<label for="featureType" class="form-label">Feature Type to Extract</label>
<select class="form-select" id="featureType" name="feature_type">
<option value="buildings" selected>Buildings</option>
<option value="trees">Trees/Vegetation</option>
<option value="water">Water Bodies</option>
<option value="roads">Roads</option>
</select>
<div class="form-text">Select the type of features you want to extract from the image.</div>
</div>
<button type="submit" class="btn btn-primary">
<i class="fas fa-upload"></i> Upload & Process
</button>
</form>
<!-- Processing status -->
<div id="processingStatus" class="d-none">
<div class="d-flex align-items-center">
<div class="spinner-border text-primary me-2" role="status">
<span class="visually-hidden">Loading...</span>
</div>
<span>Processing image, please wait...</span>
</div>
</div>
<!-- Error message display -->
<div id="errorMessage" class="alert alert-danger d-none"></div>
</div>
</div>
</div>
</div>
<!-- Results Section (initially hidden) -->
<div id="resultsSection" class="row mt-4 d-none">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h3><i class="fas fa-map"></i> Processing Results</h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-12 mb-3">
<div id="map" style="height: 500px;"></div>
</div>
</div>
<div class="row mt-3">
<div class="col-md-12">
<div class="d-flex justify-content-between">
<div>
<h4>GeoJSON Data</h4>
</div>
<div>
<button id="downloadBtn" class="btn btn-success">
<i class="fas fa-download"></i> Download GeoJSON
</button>
</div>
</div>
<div class="mt-2">
<pre id="geojsonDisplay" class="bg-dark text-light p-3" style="max-height: 300px; overflow-y: auto;"></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- About Section -->
<div id="about" class="row mt-4">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h3><i class="fas fa-info-circle"></i> About This Tool</h3>
</div>
<div class="card-body">
<p>
This application provides an image processing pipeline that converts uploaded images to
GeoJSON data and visualizes it on a map. It uses advanced algorithms to detect features
in satellite or aerial imagery and represent them as geographic vector data.
</p>
<h4>Features:</h4>
<ul>
<li>Upload and process various image formats</li>
<li>Automatic feature detection and extraction</li>
<li>Conversion to standard GeoJSON format</li>
<li>Interactive map visualization</li>
<li>Download processed GeoJSON data</li>
</ul>
<h4>How It Works:</h4>
<ol>
<li>Upload an image (satellite imagery, aerial photos, etc.)</li>
<li>Our system processes the image using computer vision techniques</li>
<li>Features are detected and converted to geographic coordinates</li>
<li>Results are displayed on an interactive map and available for download</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<footer class="bg-dark text-light py-4 mt-5">
<div class="container">
<div class="row">
<div class="col-md-6">
<h5><i class="fas fa-tree"></i> ForestAI</h5>
<p>Image processing pipeline for geospatial data</p>
</div>
<div class="col-md-6 text-md-end">
<p>&copy; 2023 ForestAI</p>
</div>
</div>
</div>
</footer>
<!-- Bootstrap JS Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<!-- Leaflet JS -->
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
crossorigin=""></script>
<!-- Custom JS -->
<script src="{{ url_for('static', filename='js/map.js') }}"></script>
<script src="{{ url_for('static', filename='js/upload.js') }}"></script>
</body>
</html>