HadISD
source is the same for Hadisd: “HadISD”, “hadisd”, “Hadisd”, “HADISD”, “Had-isd”, “had-isd”, “HAD-ISD”, “Had-isd”
get meta load, if true, read the metadata as Dataframe
[2]:
from obswx import *
# Get the metadata for the HadISD dataset
met = obswx(source='hadisd')
# Load the metadata
met.get_meta(load=True).head()
[2]:
| station_id | lat | lon | elevation | |
|---|---|---|---|---|
| 0 | 010010-99999 | 70.933 | -8.667 | 9.0 |
| 1 | 010014-99999 | 59.792 | 5.341 | 48.8 |
| 2 | 010030-99999 | 77.000 | 15.500 | 12.0 |
| 3 | 010070-99999 | 78.917 | 11.933 | 7.7 |
| 4 | 010080-99999 | 78.246 | 15.466 | 26.8 |
metadata is from hadisd_meta.csv (last access: 2024-04-30), originally from: https://www.metoffice.gov.uk/hadobs/hadisd/v341_202403p/station_download.html
get_data
ids_source, ‘AWS’ is using AWS S3 ids, isdget_data
station, the station id in metadataget_data
output, optional, the path dir of output file, e.g., “pyxw/”. By default, the file nc file will be save in current work dir.
[3]:
ds = met.get_data(station="010010-99999", ids_source='hadisd')
Getting data from HadISD
Goto here to help select station: https://junjieyu-uom.github.io/obswx/hadisd_map
Downloading data from https://www.metoffice.gov.uk/hadobs/hadisd/v341_202403p/data/hadisd.3.4.1.202403p_19310101-20240401_010010-99999.nc.gz
Extracting 010010-99999.nc.gz to 010010-99999.nc
[4]:
ds
[4]:
<xarray.Dataset> Size: 254MB
Dimensions: (coordinate_length: 1, time: 278217, test: 71,
flagged: 19, reporting_v: 19, reporting_t: 1128,
reporting_2: 2)
Coordinates:
longitude (coordinate_length) float64 8B ...
latitude (coordinate_length) float64 8B ...
elevation (coordinate_length) float64 8B ...
* time (time) datetime64[ns] 2MB 1931-01-01T06:00:00 ... ...
Dimensions without coordinates: coordinate_length, test, flagged, reporting_v,
reporting_t, reporting_2
Data variables: (12/27)
station_id |S12 12B ...
temperatures (time) float64 2MB ...
dewpoints (time) float64 2MB ...
slp (time) float64 2MB ...
stnlp (time) float64 2MB ...
windspeeds (time) float64 2MB ...
... ...
wind_gust (time) float64 2MB ...
past_sigwx1 (time) float64 2MB ...
input_station_id (time) object 2MB ...
quality_control_flags (time, test) float64 158MB ...
flagged_obs (time, flagged) float64 42MB ...
reporting_stats (reporting_v, reporting_t, reporting_2) float64 343kB ...
Attributes: (12/39)
title: HadISD
institution: Met Office Hadley Centre, Exeter, UK
source: HadISD data product
references: Dunn, 2019, Met Office Hadley Centre Technic...
creator_name: Robert Dunn
creator_url: www.metoffice.gov.uk
... ...
station_information: Where station is a composite the station id ...
Conventions: CF-1.6
Metadata_Conventions: Unidata Dataset Discovery v1.0, CF Discrete ...
featureType: timeSeries
processing_date: 04-Apr-2024
history: Created by mk_netcdf_files.py \nDuplicate Mo...transform to pandas dataframe
[5]:
ds['temperatures'].to_dataframe()
[5]:
| temperatures | |
|---|---|
| time | |
| 1931-01-01 06:00:00 | -5.0 |
| 1931-01-01 12:00:00 | -5.0 |
| 1931-01-01 18:00:00 | -5.0 |
| 1931-01-02 06:00:00 | -5.0 |
| 1931-01-02 12:00:00 | -5.0 |
| ... | ... |
| 2024-03-27 13:00:00 | -2.7 |
| 2024-03-27 14:00:00 | -2.7 |
| 2024-03-27 15:00:00 | -2.7 |
| 2024-03-27 16:00:00 | -3.0 |
| 2024-03-27 17:00:00 | -3.5 |
278217 rows × 1 columns
save to a csv file
[ ]:
df = ds['temperatures'].to_dataframe()
df.to_csv('data.csv')