Mapeamento e Conjuntos de Dados Geoespaciais em Data.gov

Coloque os dados do governo dos Estados Unidos no mapa

Poucas ferramentas geram melhores insights na análise de negócios do que mapas efetivos. Uma grande parte do gerenciamento de cadeia de fornecimento, vendas e estratégia geral de negócios acompanha as nuances da geografia. Isso se estende a usos mais amplos de analítica, como em administração de assistência médica, empresas com consciência social, inteligência política, suporte educacional e mais. O governo federal dos EUA fornece um volume surpreendente de dados originados de diversas fontes, o que pode ser um elemento fundamental para a analítica efetiva. Saiba mais sobre os conjuntos de dados geoespaciais em Data.gov, incluindo como carregá-los no Google Earth e adaptá-los a outras ferramentas analíticas e gerais.

Uche Ogbuji, Partner, Zepheira, LLC

Photo of Uche OgbujiUche Ogbuji é sócio da Zepheira , onde supervisiona a criação de sofisticados catálogos da web e outros bancos de dados ricamente contextuais. Ele possui uma longa história de pioneirismo em tecnologias avançadas da web, como XML, web semântica e serviços da web e projetos de software livre como Akara, uma plataforma de software livre para aplicativos de dados da web. É engenheiro da computação e escritor nascido na Nigéria que mora e trabalha perto de Boulder, Colorado, EUA. Encontre mais informações sobre o Sr. Ogbuji no seu blog, Copia.



31/Ago/2012

Em meu artigo "Data.gov para Agências do Governo" apresentei o website e plataforma relativamente novos do governo federal dos EUA para tornar dados abertos e disponíveis ao público. Houve alguns avanços interessantes em Data.gov desde então, incluindo o release do software livre da sua base de código (consulte Recursos).

No entanto, desde o início de Data.gov, houve interesse em particular no compartilhamento de informações geográficas. Há uma quantidade enorme de informações sobre gerenciamento de território, principalmente em terra e, em menor quantia, no mar. Essas informações variam de gerenciamento de terreno em larga escala no nível federal a propriedade cadastral e serviços do governo nos níveis de estado e condado. Essas informações são geralmente apresentadas na forma de mapas e camadas de mapa, e há uma seção separada de Data.gov para esses conjuntos de dados geoespaciais. Na verdade, no momento em que escrevo há quase 450.000 conjuntos de dados geoespaciais contra menos de 5.000 conjuntos de dados não geoespaciais ("brutos").

Obviamente as pessoas pensam primeiro em um contexto do governo ao visualizar esses dados. Mas Data.gov pode liberar os dados do governo desse contexto estrito de setor público. Empresas que planejam algo, de gerenciamento de cadeia de fornecimento ou campanhas de marketing à abertura de lojas, podem usar esses dados para determinar as melhores estratégias em combinação com outros fatores, como condições financeiras e de mercado. Em outras palavras, os dados geográficos em Data.gov podem se tornar um elemento importante na análise de negócios. Neste artigo, saiba como usar os conjuntos de dados geográficos de Data.gov para a análise de negócios.

Localizando os dados

Na página inicial de Data.gov há links para os conjuntos de dados geoespaciais bem ao lado de "Raw Data." O catálogo geoespacial é semelhante ao dos dados brutos, como se pode ver na captura de tela da Figura 1. . Obviamente seria muito trabalhoso explorar mais de 400.000 conjuntos de dados divididos em 10 ou mesmo 100 por página, portanto, o recurso de procura é essencial. Infelizmente, parece não ser possível realizar procuras espaciais (por exemplo, localizar os conjuntos de dados com regiões do mapa que incluam latitude 40,014986, longitude -105,270546). É claro que é possível fazer uma procura por metadados, como "Boulder, Colorado", mas há vários motivos para isso não ser útil.

Figura 1. Captura de tela do catálogo geoespacial de Data.gov
Captura de tela do catálogo geoespacial de Data.gov

O Data.gov está integrando um site separado, o Geo.Data.gov, que oferece recursos mais voltados para dados geoespaciais, incluindo o que parece ser procura por região de mapa contida ou por interseção, mas isso não parece estar funcionando no momento em que escrevo este artigo. O Geo.Data.gov é a evolução do portal Geospatial One-Stop (GOS), que data de 2003 como parte da iniciativa de governo eletrônico dos EUA. Ele pode ser acessado pelo geoportal da web e por ferramentas de Geographic Information Systems (GIS) populares. Atualmente, a última opção pode ser a melhor para procura espacial.

A maioria dos conjuntos de dados geoespaciais está no formato ESRI shapefile, que é ainda o formato dominante em GIS. Alguns estão na forma de acesso aos servidores de mapa fornecido pelas agências de origem. Nesse caso, é possível visualizar os mapas diretamente no Data.gov. Com o crescimento do mapeamento online, seria bom se houvesse mais formatos, como o Keyhole Markup Language (KML), um padrão aberto mantido pelo Open Geospatial Consortium Inc. (OGC). Apenas uma pequena porcentagem dos conjuntos de dados em Data.gov está disponível em KML. E eu queria saber quantos. A abordagem óbvia seria pelo tipo de arquivo, mas, na procura avançada, é possível selecionar apenas os formatos PDF, texto e Microsoft® Office. Fiz uma procura de texto completa por "KML" e "KMZ" (um arquivo KML compactado) e obtive algumas centenas de resultados.

Além da procura óbvia

Obviamente, menos importante que procurar conjuntos de dados por formato é localizá-los por tópico e características que suportem uma necessidade particular em analítica. O Data.gov não é muito bom para descobertas fortuitas, portanto é importante prestar atenção às comunidades de interesse, como Health.Data.Gov ou BusinessUSA. Elas podem ser acessadas na guia "Communities" em Data.gov. Assim, é possível conhecer conjuntos de dados úteis indexados informalmente por interesse.

Também descobri que muitos dos conjuntos de dados com KML não estão na seção geoespacial (embora a maioria dos que usam shapefiles esteja), mas sim na seção de dados "brutos". Portanto, ao usar recursos de procura, pode ser melhor fazer uma procura em todo o site.


Carregando um conjunto de dados geoespaciais

Como disse, os conjuntos de dados geoespaciais de Data.gov estão disponíveis em shapefiles ESRI, com alguns em KML e outros formatos menores. Irei focar em KML neste artigo. A grande vantagem do KML é a flexibilidade que o formato fornece para aplicativos analíticos leves. Ele pode ser usado com Google Earth ou outro software de globo virtual 3D, como Microsoft Live Earth e NASA World Wind.

Para servir de exemplo, escolherei o "Map of Federal Lands Highway (FLH) American Recovery and Reinvestment Act (ARRA) projects", que é um nome enorme (como vários nomes do governo), mas apenas especifica locais em que foi fornecido financiamento para diversos projetos por parte de algumas agências federais e estaduais. Consulte Recursos para ver a página Data.gov. O download de arquivo KML externo está no canto superior direito da página. O arquivo efetivamente transferido é flh-arra-projects.kmz, que é um zip do arquivo KML XML simples. Ele pode ser carregado como está no Google Earth. (consulte Recursos). . Após fazer o download, instalar e iniciar o Google Earth, deverá ser possível simplesmente arrastar e soltar o arquivo KMZ na janela do aplicativo em execução. As coordenadas serão exibidas na Figura 2.

Figura 2. Conjunto de dados FLH/ARRA carregado no Google Earth
Conjunto de dados FLH/ARRA carregado no Google Earth

Há metadados associados a cada conjunto de coordenadas. Seguindo o estilo KML comum, eles encontram-se integrados nas descrições HTML. O Google Earth carrega cada um desses fragmentos HTML quando o usuário clica em uma das marcas de local, como mostra a Figura 3.

Figura 3. Conjunto de dados FLH/ARRA no Google Earth, com diálogo pop-up de um dos pontos
Conjunto de dados FLH/ARRA no Google Earth, com diálogo pop-up de um dos pontos

O pacote configurável KMZ inclui um arquivo KML e uma imagem para a legenda, que você pode ver no canto inferior direito da Figura 2. A Listagem 1 é um fragmento do KML, representando uma das marcas de local.

Lista 1. Fragmento representando uma das marcas de local
<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>

Eu incluí quebras de linha devido à formatação do artigo, mas elas também ajudam a ver a estrutura simples usada para codificar os metadados no elemento description . Isso não é muito conveniente para processamento por máquina e poderia ser melhor mesmo para leitores humanos, mas eu consegui extrair as informações usando um script simples. Meu objetivo era complementar a ótima visualização do Google Earth com outra ferramenta muito útil para analítica.


Experimentando com os dados

Escrevi um programa simples, mostrado na Listagem 2, que analisa campos da descrição e os combina com as coordenadas de mapa para criar uma representação simples do conjunto de dados em JavaScript Object Notation (JSON). O código está em Python, com comentários para sua conveniência. Não é necessário entender totalmente."

Lista 2. Programa que cria uma representação simples do conjunto de dados em JSON
#import from standard Python library
import sys
from datetime import datetime

#import from the amara library
from amara.bindery import parse
from amara.thirdparty import json
from amara.lib import U

#Parse the KML document
kmldoc = parse(sys.stdin)

#Set up XML namespace declarations
PREFIXES = { u'kml': u'http://www.opengis.net/kml/2.2' }

items = []
#Iterate over all the placemarks in the document
for pm in kmldoc.xml_select(u'//kml:Placemark'):
    coords = U(pm.Point.coordinates)
    #Flip coordinates around to lat,long
    lng, lat, alt = coords.split(u',')
    fixed_coords = u','.join((lat, lng))

    #Each placemark's fields are encoded in the description, separated by HTML linebreaks
    desc = U(pm.description)
    fields = desc.split(u'<br>')

    #The object representing this record's fields
    item = {}

    #Parse the fields
    for field in fields:
        if u'=' in field:
            key, val = field.split(u'=', 1)
            item[key.strip()] = val.strip()

    #Fix up a few of the fields
    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()

    #Add each field to the record set
    items.append(item)

#Emit the JSON
json.dump({ u'items': items}, sys.stdout, indent=4)

O mais importante é a saída do script, que é um conjunto de registros semelhantes à Listagem 3.

Lista 3. Exemplo de saída do script da execução da Listagem 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"
    },

Com essa representação JSON, posso usar minha ferramenta preferida para analítica: Viewshare.org, da Biblioteca do Congresso dos EUA, desenvolvido pela minha empresa, a Zepheira.

A Figura 4 é uma captura de tela desse conjunto de dados visualizado através do Viewshare. O software Viewshare suporta mapas, linhas do tempo e outras visualizações, bem como torna fácil responder perguntas analíticas como "Quantos projetos do governo estadual do Colorado receberam fundos em 2009?".

Figura 4. Captura de tela do conjunto de dados FLH/ARRA visualizado pelo Viewshare
Captura de tela do conjunto de dados FLH/ARRA visualizado pelo Viewshare

Se observar bem, você perceberá que os mapas do Viewshare são diferentes daqueles do Google Earth. O Viewshare usa OpenLayers, que ilustra a flexibilidade disponível agora em ferramentas de mapeamento.


Conclusão

Como mencionei, a maioria dos conjuntos de dados em Data.gov é geoespacial, o que enfatiza a importância do local em programas do governo. Essa importância significa a utilidade geral dos muitos dados que o governo americano produz atualmente. Como demonstrei neste artigo, com apenas um pouco de trabalho, é possível usar esses dados em analítica ou em outro software que você escolher.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Segmentos de mercado
ArticleID=826265
ArticleTitle=Mapeamento e Conjuntos de Dados Geoespaciais em Data.gov
publish-date=08312012