Сейсмо API

Помните Сейсмолонг? Я всё пишу одновременно много всего сейчас, и вот это мини статья, её я закончил первой. Так вот, тут я вам расскажу, что значит слово СЛОЖНО!!!

Сейсмо API

Ну что такое Api вы и сами знаете или догадываетесь. API (application programming interface / программный интерфейс приложения) - программный интерфейс, то есть описание способов взаимодействия одной компьютерной программы с другими.

Что значит если какой-то сервис предоставляет такой API для пользователя, и им можно воспользоваться, то пожалуйста, всё круто. Только вот есть правила. Я-то землетрясения собирал, а там данных МНОГО

EMSC

Вот тут API (https://www.seismicportal.eu/fdsn-wsevent.html) довольно простой: отрезок времени, ширина, долгота, глубина, в каком формате данные на выходе предоставлять, магнитуды (минимальная, максимальная), поставщик данных – из какого каталога брать, и вот самое интересное – ЛИМИТ (сказано что 20000 событий).

Удобное
Удобное

И по кнопке в конце генерируется ссылка, с которой можно работать.

Но лимит - это не есть хорошо, потому что в итоге я скачал 1 218 259 записи.

Что я сделал – так это в программном коде просто сгенерировал много ссылок на каждый год, по магнитудам от 0.1 до 10, с шагом 0.1 (т.е. ссылки получались вида:

  • 1. Время: мин 01.01.2000 00:00:00 макс 01.01.2001 00:00:00 | Магнитуды: мин 0.1, макс 0.1

  • 2. Время: мин 01.01.2001 00:00:01 макс 01.01.2002 00:00:00 | Магнитуды: мин 0.1, макс 0.1

  • 3. ...

  • 4. Время: мин 01.01.2000 00:00:00 макс 01.01.2001 00:00:00 | Магнитуды: мин 1.1, макс 1.1

  • 5. ...

Как-то так
Как-то так

И получило 5096 ссылок. Всё скачивалось в отдельные csv файлики, а потом программно всё объединялось в один.

ISC

Хорошее API (http://www.isc.ac.uk/iscbulletin/search/catalogue/), 11 927 405 записей на выходе, всё то же самое… Как я думал. НО ОКАЗАЛОСЬ НЕТ:

Сейсмо API
  • Лимита как такового нет – сервер будет пытаться формировать ответ, доходя даже до 10 минут ожидания, и чем больше записей, чем сложнее запрос – тем невозможнее дождаться ответа

  • Нужен таймаут между запросами в 1 минуту

  • При большом ответе сервер может просто на середине формирования ответа сказать – я не хочу больше ничего грузить, пока 👋

Именно дойдя до скачивания ISC я очень много чего переписал в коде программы что-бы формировать так много мелких ссылок, учитывать время ожидания ответа сервера и ожидание между запросами… Как же он меня выбесил… Шаг я ему правда с ссылками сделал в 0.2, итого это вышло 4995 ссылок, и если время ожидания между запросами в минуту, то получается это только 3.468 дней ожидания между запросами. Оно ещё и скачивало всё долго, и откидывало постоянно, в общем, неделю я его качал точно…

USGS

Самый быстрый и удобный API (https://earthquake.usgs.gov/earthquakes/search/) вообще никаких проблем, никаких ожиданий, всё нереально быстро с ОВЕР 9000 ссылок иил что там ещё. Просто всё скачал и забил. Хоть и тоже с лимитом

Сейсмо API

IRIS

Написано, что их API всё, гг. Ещё есть, но скоро уже не будет (http://service.iris.edu/fdsnws/event/1/). Но так как у них есть сервисы – интерактивная карта (http://ds.iris.edu/ieb/index.html) и ещё одна (зачем? http://ds.iris.edu/wilber3/find_event) то я их распотрошил и достал их URL ссылки, и по ним формировал запросы. А почему нет, раз база данных то у них одна?

EIB
EIB
Wilber
Wilber

Но оказалось, что в первой интерактивной карте IEB не указывается поставщик данных, а во второй Wilber - лимит в 10 000 записей. Но я всё равно всё скачал (4 986 254 записи), только что-бы обнаружить что IRIS это сайт прокладка с данными из ISC (https://dtf.ru/u/46290-den-rzhd/2747435-seismolong#5) и частью других каталогов других поставщиков, но в основном это ISC… Мда…

Volcano Discovery

На сайте уже есть все нужные данные (https://www.volcanodiscovery.com/earthquakes/global/stats.html). Я просто через панель разработчика в браузере (что на f12) посмторел и забрал что хотел.

Сейсмо API

Программное

Пока я добил скачивание... Но это ещё пол беду. Нужно же и данные постороить.

Сейсмо API

Всё скачивалось в CSV в мелкие файлики. Потом я их объединил в один гига файл. Считывал его в программе в объектную модель, убирал дубликаты событий во времени, месту, глубине, магнитудам (там оказалось совсем немного записей, в общем мелочи, и не на моей стороне), а после отфильтровывал по личному каталогу агентсва что я скачивал. Так на выходе получались 2 файлика, с атфильрованными записями и нет.

Ну а дальше, уже когда есть все все все данные, просто строил разные алгоритмы что-бы привести в разные виды, и сгруппировать по годам или чему там ещё, и формировал соответсвующие csv файлы для Excel.

Какие-то итоговые итоги

Я это зачем-то 5 месяцев делал, 3 их которых ничего не делал. В свободное от работы время, просто потому что да 👍

Никто мне за это конечно не заплатит, но мне просто было интересно. Почему бы и нет.

Сейсмо API

Крч вы не ждали, но я сделал этот пост за час. Пошел писать следующий. Всем удачи, всех люблю 💖👋

Увидимся 💪

6363
11
11
62 комментария

нихуя не понял, но на всякий случай ебем

15
Ответить
10
Ответить

Ничего не поняла, но очень интересно пхаха

11
Ответить

Тут ничего интересно не для программистов. Проходите мимо 👀

10
Ответить

Жесть опять лонг

8
Ответить

Нет, это маленькое. +За лонги донатят

8
Ответить

Что-то на программистском. Может ты ещё и виновс сможешь переустановить?

7
Ответить