Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

Repository files navigation

East TN Land Finder

An open-source (OSINT) dashboard for finding land to build a retirement home in East Tennessee. It covers Loudon, Greenback, Lenoir City, Tellico Village, Vonore, Maryville, Alcoa, Louisville, Friendsville, Walland and Townsend, which is all of Blount and Loudon counties plus northern Monroe.

It shows the land currently listed for sale (about 610 listings, from LandSearch.com). Every listing is matched to its county parcel and measured against about 80 criteria:

Category What's measured
Terrain (LiDAR) Mean and 90th-percentile slope, buildable acres (≤15% slope, outside flood and wetlands), largest contiguous building pad, steep share, best house site, elevation, relief, hilltop/hollow position, aspect
Mountain views Line-of-sight from 6 m above the house site to about 70 Great Smoky Mountains crest points and 110 foothill summits (earth curvature included), plus a 360° skyline chart per parcel
Noise and nuisances Modeled road noise (dBA), distance to interstates, highways, rail, McGhee Tyson runways and approach corridor, big-box retail, industrial land, quarries, landfills, wastewater plants and ranges, transmission lines
Access OSRM drive times to the nearest town, Maryville, Knoxville, Turkey Creek, TYS airport, Townsend/GSMNP and the nearest grocery; distance to pharmacy, golf, marina and lake
Healthcare Drive time to the nearest 24/7 ER, to the Level I trauma center (UT Medical Center) and to comprehensive stroke centers; clinic density; nearest fire station
Hazards Sinkhole risk (USGS LiDAR-mapped karst depressions plus carbonate soils), FEMA flood %, NWI wetlands %, steep/landslide share
Soils and utilities SSURGO septic suitability and limitations, basement suitability, depth to bedrock, drainage; assessor water, sewer, electric and gas
Value and ownership Appraised land value and $/acre, last sale, years held, greenbelt, absentee, out-of-state, estate and corporate owners, sold-since-snapshot, detected structures

The full criteria list, with how each item is measured, its limits, and a pre-offer due-diligence checklist, is in docs/CRITERIA.md.

Live site (GitHub Pages)

Once Pages is turned on, the dashboard is served at https://andwaldrep.github.io/LandSearchTN/ (the root page forwards to dashboard/). Anyone with the link can use it. "Share link" copies a URL that reopens the exact filters, weights and map colouring.

To turn it on: Settings → Pages → Build and deployment → Source: Deploy from a branch → pick the branch that holds this code and / (root) → Save. The first deploy takes a minute or two, and every push to that branch redeploys. GitHub Pages needs the repository to be public, or a paid plan (GitHub Pro) for a private one. Either way the published site itself is public.

Automatic daily refresh

.github/workflows/refresh-listings.yml re-runs the whole pipeline every morning (about 6:17 am Eastern) on GitHub Actions. It picks up new, sold and price-changed listings and recomputes their metrics. If anything changed, it commits dashboard/data/ and Pages redeploys. The header shows "Listings as of …", which turns red if the data is more than a week old (for example, if a run failed; GitHub emails the repository owner when a run fails). To refresh right away, open the repository's Actions tab → Refresh land listings → Run workflow.

Using the dashboard

cd dashboard
python3 -m http.server 8000
# open http://localhost:8000

You can also enable GitHub Pages for this repository (branch root). index.html redirects to dashboard/.

Features:

  • Presets: Balanced retirement, Smokies-view homesite, Quiet acreage, Close to hospitals, Easy build, Near the lake, Lowest sinkhole/flood risk.
  • Every metric is a filter:
    • Numeric fields get a dual-handle range slider, exact min/max boxes and a crossfilter histogram. Gray bars show the whole dataset; blue bars show what passes your other filters.
    • Categorical fields get checkboxes with live counts and "only", "invert" and search.
    • Yes/no fields get Any/Yes/No.
    • Text fields support "contains" with -word to exclude.
    • A "find a filter" box searches the filters themselves. Active filters appear as removable chips.
  • Weighted scoring: seven sub-scores (buildability, view, quiet, access, healthcare, hazard safety, value) with adjustable weights and a minimum-score cutoff. Hover a sub-score in the detail panel to see its inputs.
  • Spatial filters: limit to the current map view, or to a radius around a point you click.
  • Map layers: LiDAR hillshade, LiDAR slope, 25 ft contours, FEMA flood zones, NWI wetlands, hospitals, towns, groceries and the mountain view targets, over USGS Topo, imagery, OSM or dark basemaps. You can color parcels by any metric.
  • Parcel detail: score breakdown, warning badges, a skyline toward the Smokies, every metric with its percentile, and links to the county assessor (TPAD), TN parcel viewer, Google satellite and 3D, Zillow/Realtor/LandWatch, the FEMA flood map, the FCC broadband map and SoilWeb.
  • Your own lists (saved in your browser): shortlist ★, hide, notes, mark as listed with asking price and URL, paste listing IDs or addresses to bulk-mark, compare parcels side by side, saved searches, shareable URL links, and CSV/GeoJSON export.

Important limitations

  • Listings come from LandSearch.com (it aggregates MLS and broker listings, and its robots.txt allows crawling). Zillow, Realtor.com and LandWatch forbid scraping, so listings only on those sites are missing. Rerun pipeline/run_all.sh to refresh the listings and every metric.
  • Views use a bare-earth model, so trees are ignored. Noise is a screening model. Drive times are free-flow.
  • Loudon and Monroe assessor attributes are a 2023 snapshot. Blount's are current. Parcels sold since the snapshot are flagged.
  • The sinkhole and septic metrics are screening tools, not a geotechnical survey or perc test.

Rebuilding the data

pip install -r pipeline/requirements.txt
./pipeline/run_all.sh        # ~20 min; downloads are cached in pipeline/cache/ (git-ignored)
Step Source
s05_listings.py LandSearch.com land listings for Blount, Loudon and Monroe counties
s10_parcels.py Blount County GIS parcels/CAMA (current); TN Comptroller CAMA for Loudon and Monroe via the public statewide parcel map; TN Property Boundaries for current owners
s20_overture.py Overture Maps (OpenStreetMap roads/POIs/land use; Microsoft/Google building footprints)
s30_dem.py USGS 3DEP elevation service (Tennessee QL2 LiDAR bare-earth)
s40_layers.py FEMA NFHL; USFWS NWI (via TN); TN city limits; USGS SIR 2024-5134 karst depressions; USDA SSURGO via Soil Data Access
s50_terrain.py Slope, pads, aspect, line-of-sight and skyline computed from the DEMs
s60_proximity.py Distances, noise model, overlays, soils and sinkhole composite
s70_drivetimes.py OSRM public routing server (OpenStreetMap)
s80_export.py Writes dashboard/data/

To change the study area, minimum acreage, destinations or excluded owners, edit pipeline/config.py. To change the scoring curves, edit dashboard/js/scoring.js.

Self-contained build (claude.ai Artifact)

python3 tools/build_artifact.py OUT_DIR bundles the dashboard into one page that needs no third-party tile servers. It uses the LiDAR shaded relief, roads, water, flood and wetland layers from dashboard/data/basemap/ (built by pipeline/s85_basemap.py). Exports go through the viewer's save prompt, with a copy-to-clipboard fallback.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages