Two Pennsylvania station archives in one place. Penn State IDA holds history for the PA Environmental Monitoring Network (PEMN), FAA airports, CWOP citizen stations, COOP and more — pick stations, dates and variables once and the browser requests every file for you. Keystone Mesonet network files give you station lists and current readings for PEMN, RWIS road sensors, DEP, DCNR and others. No account or key needed.
One per line: network,id,start,name. Example: shef,USC00361273,1895-01-01,BIGLERVILLE
This is the normal mode. One click starts the selected station/date requests. Penn State returns individual CSV files; your browser may ask once to allow multiple downloads from this HTML file.
No requests dispatched yet.
A single helper window visits each station page first so Penn State knows which network and station the following form submission belongs to. The HTML then posts the chosen dates and variables to Penn State's own submit endpoint. No Python is involved. Keep the helper window open until the queue finishes.
Use this only for pulls too large for a phone/browser session, or when you need restartability and Parquet output.
Put in
Dry run:
Detached long pull:
Progress:
Normalize existing raw files only:
Place psu_ida_bulk_engine.py in the base folder, then run:
Each link asks Penn State's Keystone Mesonet GeoServer for one network layer. Opening a link downloads the file (or shows it in a new tab). CSV opens in Excel; KML opens in Google Earth.
If a link shows an error page, Penn State's server is busy or down — try again later, or use the Python script on the next tab, which retries and tries alternate format names automatically.
For scheduled or very large pulls. Needs only Python 3, no extra packages. Download the script, then paste the one line below into Terminal (Mac/Linux) or PowerShell (Windows) from the folder where the script was saved.
Files land in a new keystone_pulls folder next to the script, with a manifest listing what succeeded. On Windows use py instead of python3 if needed.
The IDA tab already handles large jobs: it splits them into date chunks and paces the requests. Leave the helper window open and let it run; you can pause and resume.