Наборы картографических и геопространственных данных на Data.gov

Как нанести данные правительства США на географическую карту

Эффективные географические карты вдохновляют бизнес-аналитиков на новые идеи больше, чем что бы то ни было. Управление производственно-распределительной цепочкой, продажи и общая бизнес-стратегия в значительной мере зависят от географических нюансов. Это относится и к более широкому анализу, например, в сфере администрирования здравоохранения, социальной ответственности предприятий, политической проницательности, поддержки образования и др. Федеральное правительство США предоставляет удивительно большой объем очень полезных данных из различных источников, которые могут составить жизненно важный элемент эффективного анализа. Читайте о наборах геопространственных данных, размещенных на сайте Data.gov, в том числе о том, как загрузить эти данные в Google Earth и адаптировать для других аналитических и универсальных инструментов.

Учи Огбаджи, ведущий консультант, Fourthought Inc

Учи Огбаджи (Uche Ogbuji) – консультант и соучредитель Fourthought Inc.. компании, специализирующейся на продаже программного обеспечения и консалтинге в области XML-решений для менеджмента интелектуальный ресурсов предприятий. Fourthought разрабатывает 4Suite, платформу с открытым кодом для XML, RDF и приложений для управления интеллектуальными ресурсами. Мистер Огбаджи является также ведущим разработчиком языка запросов Versa RDF. Он – компьютерный инженер и писатель, родившийся в Нигерии; живет и работает в Болдере (Boulder), штат Колорадо, США. Вы можете найти больше информации о мистере Огбаджи, посетив его блог Copia.



17.05.2013

В моей статье Портал данных госучреждений США Data.gov я представил относительно новый Web-сайт федерального правительства США и платформу для открытого доступа к этим данным. С тех пор произошли некоторые интересные события, связанные с Data.gov, включая публикацию базы открытого исходного кода Data.gov (см. раздел Ресурсы).

Однако с первых дней своего существования Data.gov проявлял особый интерес к распространению геопространственной информации. Там находится огромное количество сведений об управляемой территории, главным образом суши, а также некоторой части моря. Область охвата этой информации простирается от крупных территориальных объектов федерального уровня до кадастровой собственности и государственных служб на уровне штатов и даже округов. Эта информация чаще всего представлена в виде карт и картографических слоев, и на сайте Data.gov есть специальный раздел для работы с такими наборами геопространственных данных. На момент написания статьи на сайте размещено почти 450 тыс. наборов геопространственных данных против менее чем 5000 наборов негеопространственных ("неструктурированных") данных.

Ясно, что такие данные в первую очередь относятся к контексту государственного управления. Но Data.gov позволяет вынести данные госучреждений за рамки этого строгого контекста государственного сектора. Предприятия, которым нужно планировать все от управления производственно-распределительной цепочкой или маркетинговых кампаний до открытия новых магазинов, могут использовать такие данные для определения лучших стратегий в сочетании с другими факторами, от финансовых условий до состояния рынка. Другими словами, географические данные, представленные на Data.gov, могут стать важным компонентом бизнес-анализа. Эта статья учит использовать географические наборы данных Data.gov с акцентом именно на бизнес-анализ.

Поиск данных

Рядом со ссылками на неструктурированные данные (Raw Data) на главной странице Data.gov находятся ссылки на наборы геопространственных данных. Как видно на рисунке 1, каталог геопространственных данных очень близко напоминает каталог неструктурированных данных. Очевидно, что понадобятся большие усилия, чтобы исследовать более 400 тыс. наборов данных, если рассматривать их по 10 или даже по 100 на странице, так что возможность поиска приобретает жизненно важное значение. К сожалению, сайт не позволяет искать по пространственным признакам, например, найти все наборы данных, относящихся к регионам, карты которых включают точку с широтой 40.014986 и долготой -105.270546. Конечно, можно искать по метаданным, например, «Боулдер, штат Колорадо», но это по многим причинам не очень эффективно.

Рисунок 1. Каталог геопространственных данных Data.gov
Каталог геопространственных данных Data.gov

Портал Data.gov включает отдельный сайт, Geo.Data.gov, который предоставляет больше возможностей для поиска геопространственных данных, в том числе даже поиск по пересечению или полному вхождению карт регионов, но на момент написания статьи это, похоже, не работает. Geo.Data.gov ― это продолжение портала Geospatial One-Stop (GOS), который был открыт в 2003 году в рамках инициативы "электронного правительства" США. Он доступен через Web-геопортал и популярные инструменты Geographic Information Systems (GIS). На сегодняшний день последний вариант может оказаться наилучшим для целей геопространственного поиска.

Большинство наборов геопространственных данных представлены в формате шейп-файлов ESRI, по-прежнему доминирующем формате ГИС. Некоторые находятся на серверах организаций-источников, и в этом случае возможности предварительного просмотра карты прямо на Data.gov ограничены. С развитием онлайн-картирования хотелось бы увидеть и другие форматы, такие как открытый стандарт Keyhole Markup Language(KML), поддерживаемый Открытым геопространственным консорциумом (OGC). На Data.gov лишь очень небольшой процент наборов геопространственных данных представлен в формате KML. Я решил оценить, сколько именно. Очевидным подходом казался поиск по типу файла, но инструмент расширенного поиска позволяет выбирать только PDF, текстовый формат или форматы Microsoft® Office. Выполнив полнотекстовый поиск по KML и еще KMZ (сжатый файл KML), я получил всего несколько сотен результатов.

Сверх очевидного поиска

Конечно, по степени важности за поиском наборов данных по формату следует поиск наборов данных по темам и характеристикам в соответствии с определенными потребностями анализа. Data.gov не позволяет особо надеяться на спонтанные открытия, поэтому очень важно обратить внимание на сообщества по интересам, такие как Health.Data.Gov или BusinessUSA. В них можно попасть через вкладку Communities на сайте Data.gov. Это дает шанс исследовать полезные наборы данных, неофициально классифицированные по темам.

Я также обнаружил, что многие наборы данных, представленных в формате KML, оказались в разделе не геопространственных (хотя большинство из тех наборов, что используют локальные шейп-файлы, находятся именно там), а "неструктурированных" данных, так что поиск нужно выполнять по всему сайту.


Загрузка наборов геопространственных данных

Как я уже упоминал, наборы геопространственных данных на Data.gov представлены в виде шейп-файлов ESRI в формате KML и нескольких других форматах. В этой статье я сосредоточусь на KML. Достоинством KML является гибкость, которую он придает легким аналитическим приложениям. Его можно использовать с Google Earth или другим программным обеспечением виртуального 3D-глобуса, таким как Microsoft Live Earth и NASA World Wind.

В качестве примера я выбрал набор данных "Map of Federal Lands Highway (FLH) American Recovery and Reinvestment Act (ARRA) projects" ― это многословное, что характерно для сферы государственного управления, название просто указывает на объекты проектов, финансируемых определенными учреждениями администраций штатов и федерального правительства. Ссылка на соответствующую страницу Data.gov приведена в разделе Ресурсы. В верхнем правом углу страницы расположена кнопка для загрузки внешнего KML-файла. Фактически загружается файл flh-arra-projects.kmz, который представляет собой zip-архив с обычным XML-файлом KML. Его можно загрузить как есть в Google Earth (см. раздел Ресурсы). После загрузки установите и запустите Google Earth, а затем просто перетащите файл KMZ в окно открытого приложения. Появятся координаты, как показано на рисунке 2.

Рисунок 2. Набор данных FLH/ARRA, загруженный в Google Earth
Набор данных FLH/ARRA, загруженный в Google Earth

С каждым набором координат связаны метаданные, которые в общепринятом для KML стиле встроены в HTML-описания. Google Earth загружает каждый такой фрагмент кода HTML при нажатии на любой из маркеров местоположения, как показано на рисунке 3.

Рисунок 3. Набор данных FLH/ARRA в Google Earth со всплывающим диалоговым окном для одной из точек
Набор данных FLH/ARRA в Google Earth со всплывающим диалоговым окном для одной из точек

В пакет KMZ входит файл KML и графический файл условных обозначений, которые видны в правом нижнем углу на рисунке 2. В листинге 1 приведен фрагмент KML-файла, соответствующий одному из маркеров местоположения.

Листинг 1. Фрагмент кода, соответствующий одному из маркеров местоположения
<Placemark>
  <name>1</name>
  <description><![CDATA[State Code = 1668<br>
  ARRA Funding =Agency<br>
  Client Agency = BLM<br>
  State Project number = AZ BLM 93(1)<br>
  Project Name = Monolith Gardens Trailhead Turnoff<br>
  Congressional District = 02<br>
  County Name = Mohave<br>
  State = AZ<br>
  Project description = Add a paved right turn lane to US Highway 93
   at the driveway to the Monolith Gardens Trailhead<br>
  Program = Title 16/B<br>
  Status = Awarded<br>
  Contracting Method = Full & Open<br>
  Ecconomically Distressed Area = Y<br>
  Length (Mile) = 0.470<br>
  Date = 2/23/2010<br>
  Amount = $59,341.34<br>
  Contractor = CH2M Hill, Inc., 9191 South Jamaica Street, Englew<br>
  Federal Aid Project Number = 1516049300001<br>
  Service DEscription = Construction<br>
  Latitude = 35.20605<br>
  Longitude = -114.09483<br>
  <br><br><br>]]></description>
    <styleUrl>#BLM</styleUrl>
    <Point>
        <coordinates>-114.09483,35.20605,0</coordinates>
    </Point>
</Placemark>

Я добавил знаки перевода строк для форматирования в статье, но это также помогает разглядеть простую структуру, используемую для кодирования метаданных в элементе description. Это не очень удобно ни для машинной обработки, ни для чтения человеком, но с помощью простого сценария мне удалось сделать информацию из этого кода более наглядной. Мне хотелось дополнить чрезвычайно лаконичный вид Google Earth другим инструментом, очень удобным для анализа.


Экспериментирование с данными

Я написал простую программу, приведенную в листинге 2, которая анализирует поля описания и объединяет их с координатами карты, создавая простое представление набора данных в формате JavaScript Object Notation (JSON). Код, написанный на языке Python, снабжен комментариями; его не обязательно понимать полностью.

Листинг 2. Программа, создающая простое JSON-представление набора данных
#импорт из стандартной библиотеки Python
import sys
from datetime import datetime

#импорт из библиотеки amara 
from amara.bindery import parse
from amara.thirdparty import json
from amara.lib import U

#синтаксический анализ KML-документа
kmldoc = parse(sys.stdin)

#настройка объявлений пространств имен XML
PREFIXES = { u'kml': u'http://www.opengis.net/kml/2.2' }

items = []
#перебор всех меток в документе
for pm in kmldoc.xml_select(u'//kml:Placemark'):
    coords = U(pm.Point.coordinates)
    #преобразование координат в широту и долготу
    lng, lat, alt = coords.split(u',')
    fixed_coords = u','.join((lat, lng))

    #каждая метка кодируется в описании и отделяется знаком новой строки HTML
    desc = U(pm.description)
    fields = desc.split(u'<br>')

    #объект, представляющий поля этой записи
    item = {}

    #разбор полей
    for field in fields:
        if u'=' in field:
            key, val = field.split(u'=', 1)
            item[key.strip()] = val.strip()

    #исправление некоторых полей
    item['id'] = item[u'Project Name']
    item['label'] = item[u'Project Name']
    item['latlong'] = fixed_coords
    date = item.get(u'Date')
    if date:
        d = datetime.strptime(date, '%m/%d/%Y')
        item[u'Date'] = d.isoformat()

    #добавление каждого поля к набору записей
    items.append(item)

#вывод JSON
json.dump({ u'items': items}, sys.stdout, indent=4)

Важнее результат этого сценария ― набор записей, каждая из которых напоминает листинг 3.

Листинг 3. Пример результата работы сценария, представленного в листинге 2
   {
        "Contractor": "CH2M Hill, Inc., 9191 South Jamaica Street, Englew", 
        "State": "AZ", 
        "Program": "Title 16/B", 
        "Latitude": "35.20605", 
        "Service DEscription": "Construction", 
        "id": "Monolith Gardens Trailhead Turnoff", 
        "Status": "Awarded", 
        "Project Name": "Monolith Gardens Trailhead Turnoff", 
        "label": "Monolith Gardens Trailhead Turnoff", 
        "Client Agency": "BLM", 
        "Length (Mile)": "0.470", 
        "Ecconomically Distressed Area": "Y", 
        "Date": "2010-02-23T00:00:00", 
        "County Name": "Mohave", 
        "State Code": "1668", 
        "Longitude": "-114.09483", 
        "Amount": "$59,341.34", 
        "ARRA Funding": "Agency", 
        "Congressional District": "02", 
        "Project description": "Add a paved right turn lane to US
         Highway 93 at the driveway to the Monolith Gardens Trailhead", 
        "latlong": "35.20605,-114.09483", 
        "Federal Aid Project Number": "1516049300001", 
        "State Project number": "AZ BLM 93(1)", 
        "Contracting Method": "Full & Open"
    },

С этим JSON-представлением я могу использовать свой предпочтительный аналитический инструмент, в данном случае Viewshare.org, разработанный для библиотеки Конгресса США моей компанией Zepheira.

На рисунке 4 приведен скриншот этого набора данных, визуализированного с помощью Viewshare. Программное обеспечение Viewshare поддерживает карты, графики и другие подобные представления и облегчает ответ на вопросы типа: «Сколько государственных проектов было реализовано в штате Колорадо в 2009 году?»

Рисунок 4. Набор данных FLH/ARRA, визуализированный в Viewshare
Набор данных FLH/ARRA, визуализированный в Viewshare

Если приглядеться, то заметно, что карты в Viewshare отличаются от карт Google Earth. Viewshare использует библиотеку OpenLayers, которая иллюстрирует гибкость современных картографических инструментов.


Заключение

Как я уже упоминал, большинство наборов данных на Data.gov ― это геопространственные данные, что подчеркивает значение местоположения для государственных программ, и это значение определяет общую полезность тех обильных данных, которые предлагает правительство США. Как я продемонстрировал в этой статье, эти данные можно использовать в аналитических инструментах или другом программном обеспечении, проделав совсем немного работы.

Ресурсы

Научиться

Получить продукты и технологии

  • Open Government Platform (OGPL): версия программного обеспечения с открытым исходным кодом, на котором работает Data.gov, опубликованная правительствами США и Индии в мае 2012 года.
  • JavaScript Object Notation (JSON): подробнее о популярном формате Web-приложений.
  • Discover Python (Robert Brunner, developerWorks, 2010): серия статей Бруннера о языке Python.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=930037
ArticleTitle=Наборы картографических и геопространственных данных на Data.gov
publish-date=05172013