Наблюдаемые записные книжки и Cicero API

Большинство пользователей знают, что Цицерон отслеживает выборных должностных лиц, законодательные округа, контактную информацию и социальные сети. Однако многие люди не знают, что Цицерон также отслеживает и предоставляет бесплатный API-канал выборов, происходящих в демократических странах мира (посмотрите наш проект в Твиттере, который ежедневно публикует их в Твиттере). Поскольку с 1 марта по 30 июня особенно загруженный период, когда происходит 178 выборов, мы решили сделать интерактивный календарь ленты. Вы можете настроить даты и места в календаре здесь.

Начало работы с блокнотами Observable

Мы сделали эту визуализацию с помощью Observable Notebooks. Это отличный способ быстро создать интерактивную визуализацию данных и поделиться ею в Интернете, где ее можно просматривать без необходимости публиковать на веб-сайте. Они похожи на Jupyter Notebooks для визуализации данных JavaScript, и вы можете публиковать их в Observable HQ, где они размещаются бесплатно. D3.js — это первостепенный графический пакет данных JavaScript, любимый людьми, которые создают интерактивные визуализации данных для Интернета.

Каждая ячейка в блокноте Observable содержит JavaScript, который оценивается и может быть назначен переменной. Ячейка также может отображать элемент пользовательского интерфейса, который присваивается переменной. В этой записной книжке мы используем такие элементы, чтобы пользователь мог указать, как он хотел бы просматривать визуализацию, например выборы между странами и США, начало и конец отображаемого диапазона дат и т. д. Дополнительные параметры интерактивных элементов пользовательского интерфейса см. Наблюдаемые демонстрации.

Использование элементов пользовательского интерфейса в записной книжке для назначения переменных

Этот блокнот создает карту и графику календаря. Рендерим карту с листовкой, библиотекой для встраивания карт на сайты, используя Викимедиа карты в качестве базовой карты. Observable предоставляет множество примеров для замены других типов карт для отображения ваших данных.

Вызов Cicero Election API

Сначала вам нужно зарегистрироваться для получения ключа API, чтобы получить доступ к Cicero Election API. Доступ к выборам бесплатный, но дополнительные ресурсы Цицерона для выборных должностных лиц и округов требуют покупки кредитов. Получив ключ API, структурируйте оставшийся вызов следующим образом:

$ curl "https://cicero.azavea.com/v3.1/election_event?election_expire_date_on_or_after=today&election_expire_date_before=tomorrow&format=json&key={api_key}"

Ответ будет содержать список объектов события выборов. Каждый содержит название законодательного органа или выборной должности, выставленной на выборы, дату выборов и дополнительные метаданные, связанные с выборами и палатой.

Мы обрабатываем ответ API в зависимости от того, указал ли пользователь выборы в США или в других странах. Отфильтрованный ответ присваивается переменной data.

Затем данные передаются функциям для создания графика календаря и графика карты.

Хранение ключа API в секрете

Как и большинство API, Cicero требует закрытый ключ для каждого пользователя. В Observable Notebooks есть приятная функция под названием секреты. Пользователь вводит ключ, который используется для запросов к другим веб-службам, в то же время сохраняя конфиденциальность в своем браузере, когда он публикует и делится своей Observable Notebook. Получив ключ API Cicero, вставьте его и запустите ячейку apiKeyCicero, чтобы ваш запрос вернул список выборов.

Картирование выборов

Чтобы нанести на карту предвыборные события, нам нужно предоставить координаты, связанные с местом, где проходят выборы. Один из способов сделать это в Observable Notebook при работе с небольшим набором данных — просто вставить объект в ячейку и присвоить его переменной. В этом примере мы создаем две переменные, содержащие большинство местоположений с выборами в ленте выборов Cicero. Если у нас нет местоположения города или провинции, позже в нашем коде мы по умолчанию отображаем местоположение как центр тяжести страны.

Вот и все. Посмотреть исходный код проекта можно здесь. После регистрации для получения ключа API вы можете вставить его в записную книжку, чтобы просмотреть визуализацию. Вы также можете разветвить блокнот и отредактировать его для своих целей.

Посетите наш веб-сайт, чтобы узнать больше о данных о выборах, которые мы храним. И если вы сделаете свою собственную визуализацию выборов, дайте нам знать!