М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет264/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   260   261   262   263   264   265   266   267   ...   334
Байланысты:
Изучаем Python

readable_eq_data.json
{
"type": "FeatureCollection",

"metadata": {
"generated": 1550361461000,
"url": "https://earthquake.usgs.gov/earthquakes/.../1.0_day.geojson",
"title": "USGS Magnitude 1.0+ Earthquakes, Past Day",
"status": 200,
"api": "1.7.0",
"count": 158
},

"features": [
...
В первую часть файла включена секция с ключом 
"metadata"

. По ней можно 
определить, когда файл был сгенерирован и где можно найти данные в интернете. 
Также в ней содержится понятный заголовок и количество землетрясений, вклю-
ченных в файл. За этот 24-часовой период было зарегистрировано 158 землетря-
сений.
Структура файла 
geoJSON
хорошо подходит для географических данных. Инфор-
мация хранится в списке, связанном с ключом 
"features"

. Так как в файле хра-
нится информация о землетрясениях, эти данные имеют форму списка, в котором 
каждый элемент соответствует одному землетрясению. На первый взгляд структура 
кажется запутанной, но она весьма полезна. Например, геолог может сохранить 
в словаре столько информации о каждом землетрясении, сколько потребуется, 
а затем объединить все словари в один большой список.
Рассмотрим словарь, представляющий одно землетрясение:
readable_eq_data.json
...
{
"type": "Feature",

"properties": {
"mag": 0.96,
...

"title": "M 1.0 - 8km NE of Aguanga, CA"
},

"geometry": {
"type": "Point",
"coordinates": [

-116.7941667,

33.4863333,
3.22
]


364
Глава 16 • Загрузка данных
},
"id": "ci37532978"
},
Ключ 
"properties"
содержит подробную информацию о каждом землетрясении 


Нас прежде всего интересует магнитуда каждого землетрясения, связанная с клю-
чом 
"mag"
. Также представляет интерес заголовок каждого землетрясения, содер-
жащий удобную сводку магнитуды и координат 

.
Ключ 
"geometry"
помогает определить, где произошло землетрясение 

. Эта 
информация потребуется для географической привязки событий. Долгота 
x
‰
‰
и широта 

y
для каждого землетрясения содержатся в списке, связанном с ключом 
"coordinates"
.
Уровень вложенности в этом коде намного выше, чем мы использовали бы в своем 
коде, и если он покажется запутанным — не огорчайтесь; Python берет на себя 
большую часть сложности. В любой момент времени мы будем работать с одним 
или двумя уровнями. Мы начнем с извлечения словаря для каждого землетрясения, 
зарегистрированного за 24-часовой период.
ПРИМЕЧАНИЕ
В географических координатах часто сначала указывается широта, 
а затем долгота . Вероятно, эта система обозначений возникла из-за того, что люди 
обнаружили широту задолго до того, как была изобретена концепция долготы . Тем не 
менее во многих геопространственных библиотеках сначала указывается долгота, а по-
том широта, потому что этот порядок соответствует системе обозначений (x, y), исполь-
зуемой в математических представлениях . Формат geoJSON использует систему записи 
(долгота, широта), и если вы будете работать с другой библиотекой, очень важно за-
ранее узнать, какую систему использует эта библиотека .
Построение списка всех землетрясений
Начнем с построения списка, содержащего всю информацию обо всех произошед-
ших землетрясениях.


Достарыңызбен бөлісу:
1   ...   260   261   262   263   264   265   266   267   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет