Skip to content

Commit

Permalink
🔀 Merge pull request #18 from wdr-data/main
Browse files Browse the repository at this point in the history
Fix station list parsing and raise error if we parsed 0 stations
  • Loading branch information
jh0ker authored May 2, 2024
2 parents b37620f + 6aa48c3 commit caf5c03
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions scraper/src/loadStations.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@ module.exports = async function loadStations (baseMinYear) {
const url =
'https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/daily/kl/recent/KL_Tageswerte_Beschreibung_Stationen.txt';
const raw = (await got(url, { encoding: 'latin1' })).body;
return parseFixedWidth(raw, {
skip: 3,
widths: [5, 9, 9, 15, 12, 10, 42, 22],
const stations = parseFixedWidth(raw, {
// The format was changed sometime between 2024-04-15 and 2024-05-01
//skip: 3,
//widths: [5, 9, 9, 15, 12, 10, 42, 22],
skip: 2,
widths: [21, 9, 9, 14, 12, 10, 81, 843],
names: ['id', 'from', 'to', 'altitude', 'lat', 'lon', 'name', 'state'],
})
.map(station => ({
Expand All @@ -37,6 +40,11 @@ module.exports = async function loadStations (baseMinYear) {
.filter(station => !STATION_BLACKLIST.includes(station.name))
.filter(d => dayjs(d.from).year() <= baseMinYear && dayjs().diff(d.to, 'day') < 5)
.sort((a, b) => (a.slug > b.slug ? 1 : b.slug > a.slug ? -1 : 0));

if (stations.length === 0) {
throw new Error('No stations found');
}
return stations;
};

function parseFixedWidth (data, { skip = 0, widths = [], names = [], trim = true }) {
Expand Down

0 comments on commit caf5c03

Please sign in to comment.