Vortice+Canteiros
clique para copiar e colar o código que gera o mapa acima

Uma das frentes de pesquisa do ZL Camp é investigar as possibilidade de uso do Processing para gerar visualizações de dados cartográficos. Este post vai documentar os avanços realizados e servir como um espaço para compartilhamento de informações e versões dos arquivos criados. O material será organizado com duas finalidades: permitir que os pesquisadores do projeto que não tem tanta familiaridade com o Processing possam aprender mais sobre o programa, e aprimorar seus conhecimentos para otimizar suas participação no processo de desenvolvimento coletivo; gerar um repositório de soluções, desafios futuros e recursos disponíveis para os pesquisadores do projeto ir progressivamente melhorando um mapa criado coletivamente.

No primeiro ZL Camp, uma das fontes iniciais foi o capítulo 3 do livro Visualizing Data, de Ben Fry (clique para download do livro em PDF). A outra foi a biblioteca Unfolding Maps, para criação de mapas interativos e geolocalizados. O código inicial usando a biblioteca foi feito com a ajuda deste tutorial em vídeo de Matthew Epler, professor da Parsons School of Design: http://vimeo.com/album/2573675/page:4/sort:preset/format:thumbnail.

No início dos trabalhos, dois grupos trabalharam em possibilidades sugeridas por cada um destes dois “pontos-de-partida”. O arquivo de Fry, apesar da fácil manipulação, revelou-se problemática por não ter uma grade real de geolocalização, algo que é importante em processos de mapeamento com caráter mais técnico.

Camp4

Patrícia Oakim mostra para o curador e produtor cultural Demétrio Cultural o resultado parcial das pesquisas do grupo que trabalhou no Processing

Este processo revelou que os focos para abordar os mapeamentos são diversos em função das diferentes possibilidades do softwares existentes. Um aspecto desta discussão remete a pesquisas sobre os aspectos ideológicos das linguagens de programação, conforme discutido por Alex Galloway no artigo On Software and Ideology — tema que foi desenvolvido de forma mais ampla em um dos capítulos de seu livro The Interface Effect.

De que forma os programas de computador podem direcionar as formas de construção de um mapa e, portanto, direcionar as formas de entender um território?

Esta pergunta se relaciona com o debate mais amplo das formas de representação cartográfica e seus determinantes. Um aspecto do tema foi abordado por Jorge Bassani, em Mapografias: “As possibilidades abertas pela informática e pelos mapeamentos eletrônicos com geo-processamento (GIS), nos oferecem novas ferramentas para sobrepor, montar, fazer extrusão, mixar mapas; porém sua criação é a experiência do vivenciar o ambiente, é o embate com a matéria e sua revolta” (p. 139). Um dos desafios do projeto ZL Vórtice é justamente desenvolver ferramentas capazes de transformar em cliques e gestos estas visões de mapeamento em que o tempo, a deriva e o mergulhar na cidade resultam em modos complexos de perceber o urbano.

Neste sentido, os resultados do primeiro ZL Camp devem ser entendidos como um reconhecimento de terreno e um engajamento inicial com a complexidade do desafio a ser enfrentado. Um dos aspectos mais ricos do encontro foi a tensão entre formas de pensar o mapeamento nos diferentes grupos, e que tipo de questões a escolha por um software ou outro suscitam. Um dos problemas que surgiram foram os limites que surgem em função da maneira como diferentes softwares organizam a informação geolocalizada — e, mesmo em casos em que há compatibilidade de formatos, as implicações decorrentes do conflito entre a representação das coordenadas em pixel típicas da exibição de imagens no computador, e a representação das coordenadas em latitude e longitude adotada nas práticas de geoprocessamento.

mapaZL_Vortice
Versão mais recente do mapa Processing criado durante o ZL Camp: como a biblioteca Unfolding Maps só tem ferramentas de desenho básico, uma das dificuldades foi gerar uma imagem mais precisa da área do Vórtice

Esta discrepância surge numa primeira comparação entre as formas de lidar com mapas no Processing e no GIS, ainda que durante o próprio processo do ZL Camp tenha ficado claro que a existência de bibliotecas específicas supera em grande parte estes limites — e que um diálogo mais próximo com pesquisadores da área de computação possivelmente levarão ao conhecimento de algoritmos e processos capazes de relacionar os dois tipos de valores sem grandes dificuldades.

Neste olhar inicial, uma primeira leitura foi a de que softwares como o QGIS lidam com informações mais precisas, uma abordagem ligada à precisão de dados geolocalizados e à densidade de camadas informacionais possíveis de serem cruzadas em pontos específicos de um sistema de informação geográfica; softwares como o Processing permitem ferramentas de visualização mais expressivas, uma abordagem ligada à representação do conteúdo de forma inteligível (o que não depende necessariamente de precisão).

Um dos desafios de pesquisa é adensar formas de cruzamento de procedimentos de GIS e de visualização com Processing, de forma a combinar as duas abordagens (como relacionar formas de mapeamento a partir de diferentes parâmetros de localização? extrapolando para um plano menos “sintático”, como diferentes parâmetros e métodos de mapeamento implicam em diferentes olhares sobre um território específico?). Os primeiros resultados do mapa em Processing com o Unfolding Maps revelam vários limites: as ferramentas de desenho mais precisa do Processing não estão automaticamente embutidas nos marcadores geolocalizados da biblioteca, portanto ela não permite reproduzir de forma precisa o desenho do Vórtice (que pressupõe o desenho de curvas); a sobreposição de camadas ao mapa não permite “travar” o deslocamento das imagens, fazendo com que elas se movam juntos com o mapa.

É POSSÍVEL FAZER UM OVERLAY COM UM DESENHO QUE RELACIONE SUA POSIÇÃO EM PIXELS COM AS COORDENADAS GEOGRÁFICAS EMBUTIDAS NO MAPA? COMO MAPEAR E RELACIONAR OS DOIS PADRÕES DE “LOCALIZAÇÃO”?

Para quem não conhece o Processing a fundo, vale a pena ler sobre o sistema de coordenadas que ele usa para desenhar:
https://www.processing.org/tutorials/drawing/
https://www.processing.org/examples/coordinates.htmlhttp://forum.processing.org/two/discussion/2141/how-to-map-gps-coordinates-to-processing-canvas-coordinates/p1

Mesmo que não tenham sido implementadas na versão atual do mapa criado no ZL Camp, vale a pena compartilhar o código inicialmente desenvolvido para definir as áreas do canteiro e exibir palavras-chave relacionadas, quando o mouse estivesse em cima de sua área.

mouseOver
clique para copiar e colar o código em Processing desta imagem

O Processing não tem comando “mouseOver”, mas é fácil criar uma condicional para exibir um texto quando o mouse “entra” em cima de uma figura geométrica. Vale a pena mencionar uma opção feita no desenvolvimento do código que cria a imagem acima: a escolha por desenhar o retângulo usando listas Array tinha como objetivo permitir mudar facilmente a forma desenhada.

array

A experiência de criar programas de computação gráfica leva à conclusão que procedimentos mais difíceis de aprender, como o uso de variáveis ou “arrays” permite maior flexibilidade na hora de ampliar e customizar os resultados. Ou seja: faz mais sentido começar com procedimentos mais “difíceis”, como estratégia para facilitar desdobramentos posteriores.

Mais informações sobre os procedimentos usados neste Sketch:
http://processing.org/examples/mousefunctions.html
http://www.openprocessing.org/sketch/105049
http://processing.org/reference/PFont.html

Este caminho foi abanonado em função das dificuldade de relacionar as posições em pixel da imagem com as posições em coordenadas do mapa. No arquivo mais recente (disponível para download no início deste post), foram usados os marcadores da própria biblioteca Unfolding Maps para gerar as formas e pontos relativos ao Vórtice. Numa próxima etapa, serão experimentadas possibilidades de uso da biblioteca SimpleLinesMarker, que permite desenhar trajetórias geolocalizadas dentro do mapa: http://unfoldingmaps.org/javadoc/index.html — como, por exemplo, neste mapa de Boston: http://unfoldingmaps.org/examples/40_marker-mbta-lines.html.

Este arquivo também serviu para teste do uso de bases-de-dados existentes, o que foi feito a partir de um CSV com informações sobre pontos de ônibus disponível no site da SP Trans. Tem outras informações aqui: http://www.prefeitura.sp.gov.br/cidade/secretarias/desenvolvimento_urbano/dados_estatisticos/index.php?p=160798.