State Planner

Ohio · October 22, 2026

ODOT CORS Stations by County

This is a real answer State Planner produced from Ohio’s public data.

Start for free to ask your own version of this question, or anything else about your state.

Start for free →
  1. Ohio CORS Network: ODOT RTK Reference Stations by County


    ODOT CORS network: RTK reference stations by county

    ODOT CORS Stations by CountyODOT CORS Stations by County⬇ Image

    ODOT's CORS (Continuously Operating Reference Station) network has 66 stations (TIMS layer, last updated 2025-08-14). They provide the GNSS corrections used for survey-grade positioning on ODOT projects.

    • 53 stations are inside Ohio. No county has more than one, so 53 of the 88 counties have a station and 35 have none.
    • 13 stations are in neighboring states. They are tied into the network to cover the border areas: 3 in Indiana, 4 in Kentucky, 3 in Michigan and 3 in West Virginia.
    • Who maintains them: ODOT maintains 51 of the 53 Ohio stations. The City of Dayton maintains OHDT and the City of Bowling Green maintains BGOH. The out-of-state stations are kept by ODOT, INDOT, KTC, MDOT or WVDOH.
    • Where they sit: Most are at ODOT county garages, district headquarters or county engineer offices. A few are at universities (Ohio University, Akron, Marshall), a school, a jail and an airport on South Bass Island.

    Ohio counties with a CORS station (one each)

    CountyStationSite
    AdamsOHADWest Union water department
    AllenOHALAllen Co. Engineer
    AshtabulaOHABODOT I-90 travel information center
    AthensSTKROhio University, Stocker Center
    BrownGRTNODOT garage
    ClarkOHCLODOT garage
    ColumbianaOHCBCounty jail
    CoshoctonOHCSODOT garage
    CuyahogaGARFODOT District 12 HQ
    DarkeOHDRSheriff's garage
    DefianceOHDFCounty Engineer
    FayetteOHFYODOT garage
    FranklinCOLBODOT Central Office garage
    FultonOHFNWauseon school bus garage
    GalliaGALPODOT garage
    GeaugaOHGACounty Engineer
    HancockOHHACounty Engineer outpost
    HardinKNTNODOT garage
    HarrisonFREOFreeport outpost
    HighlandOHHICounty Engineer
    HockingOHHOODOT garage
    HuronOHHUODOT garage
    JeffersonOHJFODOT garage
    KnoxMTVRODOT garage
    LakeOHLACounty Engineer
    LickingOHLIODOT District 5 HQ
    LorainOHLOODOT garage
    LucasOHLCCounty Engineer
    MahoningOHMNODOT garage
    MarionOHMAODOT garage
    MercerOHMRODOT garage
    MonroeOHMEODOT garage
    MontgomeryOHDTCity of Dayton
    MorganMCONODOT garage
    MuskingumOHJGJohn Glenn High School
    OttawaOHSBSouth Bass Island Airport
    PickawayOHPIPickaway SWCD
    PikePKTNODOT garage
    PrebleOHPRODOT garage
    RichlandOHRIODOT garage
    RossOHRSODOT garage
    SenecaTIFFODOT garage
    ShelbySIDNODOT garage
    SummitOHZPUniversity of Akron
    TrumbullGUSTGustavus outpost
    TuscarawasOHTSODOT District 11 HQ
    UnionOHUNMarysville city garage
    Van WertOHVAODOT garage
    WarrenLEBAODOT District 8 HQ
    WashingtonOHWSODOT garage
    WayneOHWYODOT garage
    WilliamsOHWIODOT garage
    WoodBGOHBowling Green (city)

    Stations in neighboring states: INAB, INFW and INLB (Indiana); KYBO, KYBU, KYSS and KYTI (Kentucky); MICW, MIKS and MIMO (Michigan); WVHU, WVRA and WVSH (West Virginia).

    Map legend

    • Blue counties: have one CORS station.
    • Light gray counties: have no station inside the county.
    • Red dots: stations in Ohio.
    • Purple dots: partner stations in neighboring states.
    • Clicking a station shows its name, site, maintainer, year built, receiver and antenna models, ellipsoid height and its link to the National Geodetic Survey.

    Having no station in the county doesn't mean a county lacks RTK coverage. The stations are spread out so each one serves a radius that reaches into nearby counties. I can add distance rings around each station (for example 30 or 40 km) to show how much of the state is covered.

Layers

  • …
    • …
    • …
  • …
    • …
    • …

Click anything on the map for its details.

The transcript below the answer shows every query it ran. Shapefiles of every layer, at full detail, can be downloaded in State Planner: sign up to ask your own question and export any map.

Ask your own question about Ohio

Send takes you to a free sign-up, no card needed, or to sign in if you have an account. Your question will be waiting in your new chat.

Transcript

What follows is the transcript of this chat as State Planner generated it. It is here to show how the answer above was arrived at: every query State Planner ran, what each one returned, and where the data came from.

transcript.md

↑ Contents

State Planner chat · https://stateplanner.com

  • State: Ohio (OH)
  • Started: October 22, 2026, 4:27 PM UTC
  • Runtime: 29 sec
  • Status: completed
Prompt

Ohio CORS Network: ODOT RTK Reference Stations by County

Model: Anthropic: Claude Opus 5.5 (anthropic/claude-opus-5.5, via openrouter)

Response

ODOT CORS network: RTK reference stations by county

ODOT CORS Stations by County

ODOT's CORS (Continuously Operating Reference Station) network has 66 stations (TIMS layer, last updated 2025-08-14). They provide the GNSS corrections used for survey-grade positioning on ODOT projects.

  • 53 stations are inside Ohio. No county has more than one, so 53 of the 88 counties have a station and 35 have none.
  • 13 stations are in neighboring states. They are tied into the network to cover the border areas: 3 in Indiana, 4 in Kentucky, 3 in Michigan and 3 in West Virginia.
  • Who maintains them: ODOT maintains 51 of the 53 Ohio stations. The City of Dayton maintains OHDT and the City of Bowling Green maintains BGOH. The out-of-state stations are kept by ODOT, INDOT, KTC, MDOT or WVDOH.
  • Where they sit: Most are at ODOT county garages, district headquarters or county engineer offices. A few are at universities (Ohio University, Akron, Marshall), a school, a jail and an airport on South Bass Island.

Ohio counties with a CORS station (one each)

CountyStationSite
AdamsOHADWest Union water department
AllenOHALAllen Co. Engineer
AshtabulaOHABODOT I-90 travel information center
AthensSTKROhio University, Stocker Center
BrownGRTNODOT garage
ClarkOHCLODOT garage
ColumbianaOHCBCounty jail
CoshoctonOHCSODOT garage
CuyahogaGARFODOT District 12 HQ
DarkeOHDRSheriff's garage
DefianceOHDFCounty Engineer
FayetteOHFYODOT garage
FranklinCOLBODOT Central Office garage
FultonOHFNWauseon school bus garage
GalliaGALPODOT garage
GeaugaOHGACounty Engineer
HancockOHHACounty Engineer outpost
HardinKNTNODOT garage
HarrisonFREOFreeport outpost
HighlandOHHICounty Engineer
HockingOHHOODOT garage
HuronOHHUODOT garage
JeffersonOHJFODOT garage
KnoxMTVRODOT garage
LakeOHLACounty Engineer
LickingOHLIODOT District 5 HQ
LorainOHLOODOT garage
LucasOHLCCounty Engineer
MahoningOHMNODOT garage
MarionOHMAODOT garage
MercerOHMRODOT garage
MonroeOHMEODOT garage
MontgomeryOHDTCity of Dayton
MorganMCONODOT garage
MuskingumOHJGJohn Glenn High School
OttawaOHSBSouth Bass Island Airport
PickawayOHPIPickaway SWCD
PikePKTNODOT garage
PrebleOHPRODOT garage
RichlandOHRIODOT garage
RossOHRSODOT garage
SenecaTIFFODOT garage
ShelbySIDNODOT garage
SummitOHZPUniversity of Akron
TrumbullGUSTGustavus outpost
TuscarawasOHTSODOT District 11 HQ
UnionOHUNMarysville city garage
Van WertOHVAODOT garage
WarrenLEBAODOT District 8 HQ
WashingtonOHWSODOT garage
WayneOHWYODOT garage
WilliamsOHWIODOT garage
WoodBGOHBowling Green (city)

Stations in neighboring states: INAB, INFW and INLB (Indiana); KYBO, KYBU, KYSS and KYTI (Kentucky); MICW, MIKS and MIMO (Michigan); WVHU, WVRA and WVSH (West Virginia).

Map legend

  • Blue counties: have one CORS station.
  • Light gray counties: have no station inside the county.
  • Red dots: stations in Ohio.
  • Purple dots: partner stations in neighboring states.
  • Clicking a station shows its name, site, maintainer, year built, receiver and antenna models, ellipsoid height and its link to the National Geodetic Survey.

Having no station in the county doesn't mean a county lacks RTK coverage. The stations are spread out so each one serves a radius that reaches into nearby counties. I can add distance rings around each station (for example 30 or 40 km) to show how much of the state is covered.

Exploratory Queries
Query 1 — Count CORS stations per county via spatial join, including stations outside Ohio.
   SELECT coalesce(c.name, '(outside Ohio)') county,
          count(*) n,
          string_agg(
          s.station_name || ' (' || s.location || ')',
          '; '
           ORDER BY s.station_name
          ) stations,
          string_agg(DISTINCT s.station_maintained_by, ', ') maint
     FROM oh_odot_cors_network s
LEFT JOIN oh_census_counties c ON ST_Intersects(c.geom, s.geom)
 GROUP BY 1
 ORDER BY n DESC,
          1
countynstationsmaint
(outside Ohio)13INAB (Indiana Albany); INFW (Indiana Fort Wayne); INLB (Indiana Liberty); KYBO (Boone County (KY) ); KYBU (Kentucky General Butler SRP); KYSS (Kentucky South Shore); KYTI (Kentucky Hwy Dist 9 ); MICW (Michigan Coldwater); MIKS (Michigan Hudson); MIMO (Michgan Monroe); WVHU (Marshall Univ (Huntington WV)); WVRA (Ravenswood WV ); WVSH (West Virginia Sherrard)INDOT, KTC, MDOT, ODOT, WVDOH
Adams County1OHAD (West Union, Ohio Water Department)ODOT
Allen County1OHAL (Allen Co Engineer's office)ODOT
Ashtabula County1OHAB (ATB Co. ODOT I-90 TIC)ODOT
Athens County1STKR (Ohio University, Stocker Center)ODOT
Brown County1GRTN (Brown Co. ODOT Garage)ODOT
Clark County1OHCL (Clark Co. ODOT Garage)ODOT
Columbiana County1OHCB (Columbiana Co.Jail)ODOT
Coshocton County1OHCS (Coshocton Co. ODOT Garage)ODOT
Cuyahoga County1GARF (ODOT Dist 12 HQ (Garage Bld))ODOT
Darke County1OHDR (Darke Co Sheriff Garage)ODOT
Defiance County1OHDF (Defiance Co. Engineer's Office)ODOT
Fayette County1OHFY (Fayette Co. ODOT Garage)ODOT
Franklin County1COLB (ODOT Central Office Garage)ODOT
Fulton County1OHFN (City of Wauseon School bus garage)ODOT
Gallia County1GALP (Gallia Co. ODOT Garage)ODOT
Geauga County1OHGA (Geauga Co Engineer )ODOT
Hancock County1OHHA (Hancock Co Engineer outpost)ODOT
Hardin County1KNTN (Hardin Co. ODOT Garage)ODOT
Harrison County1FREO (Harrison Co (Freeport Outpost))ODOT
Highland County1OHHI (Highland Co. Engineer)ODOT
Hocking County1OHHO (Hocking Co. ODOT Garage)ODOT
Huron County1OHHU (ODOT Huron Co. ODOT Garage)ODOT
Jefferson County1OHJF (Jefferson Co. ODOT Garage)ODOT
Knox County1MTVR (Knox Co. ODOT Garage)ODOT

25 out of 54 are listed here.

data/turn-1-query-1.csv

Map Layer Queries
Counties by CORS station — colored by "cat": County with 1 station (#74a9cf), County with no station (#eeeeee)
   SELECT c.geom,
          c.name AS "County",
          count(s.objectid) AS "CORS stations",
          CASE
                    WHEN count(s.objectid) > 0 THEN 'has'
                    ELSE 'none'
          END AS cat
     FROM oh_census_counties c
LEFT JOIN oh_odot_cors_network s ON ST_Intersects(c.geom, s.geom)
 GROUP BY c.geom,
          c.name

Picture: maps/turn-1-cors-stations-by-county.png

CORS reference stations — colored by "cat": Station in Ohio (#d7301f), Partner station in neighboring state (#7a0177)
   SELECT s.geom,
          s.station_name AS "Station",
          s.location AS "Location",
          s.station_maintained_by AS "Maintained by",
          s.year_built AS "Year built",
          s.receiver_model AS "Receiver",
          s.antenna_model AS "Antenna",
          round(s.eliptical_height::numeric, 1) AS "Ellipsoid height(m)",
          s.station_link AS "NGS link",
          CASE
                    WHEN EXISTS (
                       SELECT 1
                         FROM oh_census_counties c
                        WHERE ST_Intersects(c.geom, s.geom)
                    ) THEN 'oh'
                    ELSE 'out'
          END AS cat
     FROM oh_odot_cors_network s

Picture: maps/turn-1-cors-stations-by-county.png

Used Data Sets

data/turn-1-query-1.csv

↑ Contents
countynstationsmaint
(outside Ohio)13INAB (Indiana Albany); INFW (Indiana Fort Wayne); INLB (Indiana Liberty); KYBO (Boone County (KY) ); KYBU (Kentucky General Butler SRP); KYSS (Kentucky South Shore); KYTI (Kentucky Hwy Dist 9 ); MICW (Michigan Coldwater); MIKS (Michigan Hudson); MIMO (Michgan Monroe); WVHU (Marshall Univ (Huntington WV)); WVRA (Ravenswood WV ); WVSH (West Virginia Sherrard)INDOT, KTC, MDOT, ODOT, WVDOH
Adams County1OHAD (West Union, Ohio Water Department)ODOT
Allen County1OHAL (Allen Co Engineer's office)ODOT
Ashtabula County1OHAB (ATB Co. ODOT I-90 TIC)ODOT
Athens County1STKR (Ohio University, Stocker Center)ODOT
Brown County1GRTN (Brown Co. ODOT Garage)ODOT
Clark County1OHCL (Clark Co. ODOT Garage)ODOT
Columbiana County1OHCB (Columbiana Co.Jail)ODOT
Coshocton County1OHCS (Coshocton Co. ODOT Garage)ODOT
Cuyahoga County1GARF (ODOT Dist 12 HQ (Garage Bld))ODOT
Darke County1OHDR (Darke Co Sheriff Garage)ODOT
Defiance County1OHDF (Defiance Co. Engineer's Office)ODOT
Fayette County1OHFY (Fayette Co. ODOT Garage)ODOT
Franklin County1COLB (ODOT Central Office Garage)ODOT
Fulton County1OHFN (City of Wauseon School bus garage)ODOT
Gallia County1GALP (Gallia Co. ODOT Garage)ODOT
Geauga County1OHGA (Geauga Co Engineer )ODOT
Hancock County1OHHA (Hancock Co Engineer outpost)ODOT
Hardin County1KNTN (Hardin Co. ODOT Garage)ODOT
Harrison County1FREO (Harrison Co (Freeport Outpost))ODOT
Highland County1OHHI (Highland Co. Engineer)ODOT
Hocking County1OHHO (Hocking Co. ODOT Garage)ODOT
Huron County1OHHU (ODOT Huron Co. ODOT Garage)ODOT
Jefferson County1OHJF (Jefferson Co. ODOT Garage)ODOT
Knox County1MTVR (Knox Co. ODOT Garage)ODOT
Lake County1OHLA (Lake Co Engineer )ODOT
Licking County1OHLI (ODOT District 5 HQ)ODOT
Lorain County1OHLO (Lorain Co. ODOT Garage)ODOT
Lucas County1OHLC (Lucas Co Engineer )ODOT
Mahoning County1OHMN (Mahoning Co. ODOT Garage)ODOT
Marion County1OHMA (Marion Co. ODOT Garage)ODOT
Mercer County1OHMR (Mercer Co. ODOT Garage)ODOT
Monroe County1OHME (Monroe Co. ODOT Garage)ODOT
Montgomery County1OHDT (City of Dayton )City of Dayton
Morgan County1MCON (Morgan Co. ODOT Garage)ODOT
Muskingum County1OHJG (John Glenn High School)ODOT
Ottawa County1OHSB (South Bass Island Airport)ODOT
Pickaway County1OHPI (Pickaway Co SWCD)ODOT
Pike County1PKTN (Pike Co ODOT Garage)ODOT
Preble County1OHPR (Preble Co. ODOT Garage)ODOT
Richland County1OHRI (Richland Co. ODOT Garage)ODOT
Ross County1OHRS (Ross Co. ODOT Garage)ODOT
Seneca County1TIFF (Seneca Co ODOT Garage)ODOT
Shelby County1SIDN (Shelby Co. ODOT Garage)ODOT
Summit County1OHZP (University of Akron)ODOT
Trumbull County1GUST (Trumbull Co. (Gustavus OP))ODOT
Tuscarawas County1OHTS (ODOT District 11 HQ)ODOT
Union County1OHUN (City of Marysville Garage)ODOT
Van Wert County1OHVA (Van Wert Co. ODOT Garage)ODOT
Warren County1LEBA (ODOT District 8 HQ)ODOT
Washington County1OHWS (Washington Co. ODOT Garage)ODOT
Wayne County1OHWY (Wayne Co. ODOT Garage)ODOT
Williams County1OHWI (Williams Co. ODOT Garage)ODOT
Wood County1BGOH (Bowling Green Univ)City of Bowling Green

54 rows.

provenance/oh_census_counties.md

↑ Contents

Provenance: oh_census_counties

This file describes how the rows in PostgreSQL table oh_census_counties were obtained from an external source: where they were fetched and how fields were renamed and typed. Field meanings are in the mapping table below.

Identity
Pipeline

Two Census Bureau sources, joined on the county's 5-digit FIPS code:

  • Boundaries: TIGERweb tigerWMS_Current layer 82 ("Counties"), where=STATE='39', GeoJSON, outSR=4326, keyset-paged on GEOID.
  • CFS areas: sheet CFSAreas of the 2022 Commodity Flow Survey county list, the Ohio rows (ST = 39). Only the 2022 columns are kept.

The two must name the same counties, or the sync fails. FAF's oh_faf_county_xwalk is built from this table: each county's cfs_geoid is the CFS22_ID of one FAF6 zone.

Field → column mapping
Source fieldColumnTypeDescription
TIGER GEOIDgeoidvarchar(5)state + county FIPS
TIGER GEOID, last 3county_fipsvarchar(3)county FIPS
TIGER NAMEnamevarchar(60)e.g. Franklin County
CFS CFS22_AREAcfs_areavarchar(5)CSA/MSA code, or 99999
CFS CFS22_TYPEcfs_area_typevarchar(1)C, M or R
CFS CFS22_NAME, whitespace collapsedcfs_area_namevarchar(120)the workbook pads some names with doubled and trailing spaces
CFS CFS22_GEOIDcfs_geoidvarchar(19)e.g. E330000US3919800000
TIGER AREALANDaland_m2bigintsquare meters
TIGER AREAWATERawater_m2bigintsquare meters
TIGER INTPTLATintptlatdouble precisioninternal point
TIGER INTPTLONintptlondouble precisioninternal point
geometrygeomgeometry(MultiPolygon, 4326)ST_Multi(ST_GeomFromGeoJSON)
Geometry
  • SRID 4326 (WGS84). GIST index on geom.
Change detection

The Census sync's check compares the layer's vintage ("January 1, 2026 vintage") and Ohio's row count, and the county list's Last-Modified and length. A change to either marks Census stale, and the next Census sync rebuilds this table, then FAF's crosswalk.

Attribution

US Census Bureau. TIGER products are free to use with acknowledgement of the U.S. Census Bureau as the source; the CFS county list states no terms.

provenance/oh_odot_cors_network.md

↑ Contents

Provenance: oh_odot_cors_network

This file describes how the rows in PostgreSQL table oh_odot_cors_network were obtained from an external source: where they were fetched and how fields were renamed and typed. Field meanings are in the mapping table below.

Identity
Pipeline (TIMS family)

Ohio DOT TIMS publishes this layer on the TIMS data page. The catalog behind that page is GET https://tims.dot.state.oh.us/tims/api/glossary. Each entry names a MapServer layer URL.

Data is fetched as GeoJSON from that layer's REST query endpoint (where=1=1, outFields=*, outSR=4326, f=geojson), paginated with resultOffset / resultRecordCount. GeoJSON was chosen over the portal's CSV/SHP/GDB/KMZ exports because it keeps full attribute names, keeps geometry, and loads into PostGIS via ST_GeomFromGeoJSON.

Esri field names become lowercase snake_case PostgreSQL columns (non [a-z0-9_] → _). Dates stored as Esri epoch-milliseconds become timestamptz. Geometry is ST_SetSRID(ST_GeomFromGeoJSON(…), 4326), wrapped in ST_Multi when the table's stored type is Multi*. Esri shape-area / shape-length system fields are dropped.

The same MapServer query is used whenever the table is refreshed.

Field → column mapping
Source fieldColumnEsri typeDescription
OBJECTIDobjectidesriFieldTypeOID
LocationlocationesriFieldTypeStringStation Location
Station_Namestation_nameesriFieldTypeStringStation Name
Station_maintained_bystation_maintained_byesriFieldTypeStringAuthority maintaining the station
LatitudelatitudeesriFieldTypeDoubleLatitude in decimal degrees
LongitudelongitudeesriFieldTypeDoubleLongitude in decimal degrees
Eliptical_Heighteliptical_heightesriFieldTypeSingleHeight of Eliptical in Meters
Monument_Typemonument_typeesriFieldTypeStringMonument Type
Monument_Type_Definitionmonument_type_definitionesriFieldTypeStringMonument Type Definition
Year_Builtyear_builtesriFieldTypeIntegerYear Built
Receiver_Modelreceiver_modelesriFieldTypeStringReceiver Model
Receiver_Firmwarereceiver_firmwareesriFieldTypeSingleReceiver Firmware
Antenna_Typeantenna_typeesriFieldTypeStringAntenna Type
Antenna_Type_Definitionantenna_type_definitionesriFieldTypeStringAntenna Type Definition
Antenna_Modelantenna_modelesriFieldTypeStringAntenna Model
Station_Linkstation_linkesriFieldTypeStringURL link to National Geodetic Survey
Data_Download_Linkdata_download_linkesriFieldTypeStringURL link to CORS site data download
(feature geometry)geomST_SetSRID(ST_GeomFromGeoJSON(…), 4326)Feature geometry, WGS84
Geometry
  • SRID 4326 (WGS84). GIST index on geom.
  • Empty / null geometries stored as SQL NULL.

© 2026 State Planner