This commit is contained in:
Cyberes 2024-11-06 12:58:39 -07:00
parent 3ddaf4d4ac
commit 0cf6e15964
3 changed files with 13 additions and 29 deletions

View File

@ -7,18 +7,8 @@ EarthData which is done through Selenium and the Chrome browser.
1. Create an account at <https://urs.earthdata.nasa.gov>
2. `pip install -r requirements.txt`
3. `sudo apt-get install p7zip-full redis-server`
4. `sudo apt-get install dvipng texlive-latex-extra texlive-fonts-recommended cm-super`
5. `sudo systemctl enable --now redis-server`
### Google Chrome
If you don't have Google Chrome installed (used to log into the NASA site), here's how to install it.
```shell
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install ./google-chrome-stable_current_amd64.deb
```
3. `sudo apt-get install redis-server`
4. `sudo systemctl enable --now redis-server`
## Run
@ -29,7 +19,6 @@ LAT_RANGE_MIN=<lower range for lat bounding box> \
LAT_RANGE_MAX=<upper range for lat bounding box> \
LON_RANGE_MIN=<lower range for lon bounding box> \
LON_RANGE_MAX=<upper range for lon bounding box> \
CDDIS_USERNAME=<username> CDDIS_PASSWORD=<password> \
MQTT_BROKER_HOST="<Home Assistant IP>" MQTT_BROKER_PORT=1883 MQTT_USERNAME="user" MQTT_PASSWORD="<password>" \
python3 mqtt.py
```
@ -39,24 +28,19 @@ Example systemd service files are provided.
### Home Assistant MQTT Config
```yaml
mqtt:
- state_topic: "space-weather/vtec"
name: "VTEC"
unit_of_measurement: "(10^16 el) / m^2"
- state_topic: "space-weather/glotec"
name: "GloTEC"
unit_of_measurement: "(10^16) / m^-2"
state_class: measurement
unique_id: space_weather_vtec
unique_id: space_weather_glotec
```
## Data
### VTEC
### GloTEC
<https://www.spaceweather.gov/products/us-total-electron-content>
<https://www.swpc.noaa.gov/experimental/glotec>
Unit: `(10^16 el) / m^2`
VTEC, or Vertical TEC, is a specific type of TEC measurement that is taken along a path extending
vertically from the Earth's surface to the edge of the atmosphere. Essentially, VTEC is a subset of TEC, with the
difference lying in the specific path along which the measurement is taken.
Unit: `(10^16) / m^-2`
Updated hourly.

View File

@ -15,7 +15,7 @@ def main():
while True:
logging.info('Fetching latest GLOTEC data')
geojson = get_latest_glotec()
redis.set('latest_glotec_data', pickle.dumps(geojson))
redis.set('glotec', pickle.dumps(geojson))
logging.info('Scrape complete')
time.sleep(1800) # 30 minutes

View File

@ -58,11 +58,11 @@ def main():
redis = Redis(host='localhost', port=6379, db=0)
while True:
data = redis.get('latest_glotec_data')
data = redis.get('glotec')
while data is None:
logging.warning('Redis has not been populated yet. Is cache.py running? Sleeping 10s...')
time.sleep(10)
data = redis.get('latest_glotec_data')
data = redis.get('glotec')
geojson = pickle.loads(data)
utc_hr = datetime.now(timezone.utc).hour