Experiência na criação de mapas posicionais para a Wikipedia

Durante vários anos, trabalhei em mapas que são usados ​​em russo e em outras seções da Wikipedia. No total, criei mais de 300 cartões . Não sou cartógrafo profissional e não tenho educação especial nessa área. Aparentemente, eu apenas gostei de fazer cartões :)


Neste artigo, quero compartilhar a experiência de criar mapas para a Wikipedia, com foco em mapas posicionais.



Mapa físico do Canadá


Posições


Todos os materiais gráficos da Wikipedia, publicados sob licenças gratuitas, são colocados no Wikimedia Commons , permitindo que você os use em qualquer projeto da Wikimedia e em todas as seções de idioma da Wikipedia.


Entre todos os tipos de mapas da Wikipedia, destacam-se os chamados "mapas posicionais". A peculiaridade aqui é que não é apenas uma imagem de um mapa, mas uma imagem em uma projeção conhecida, com coordenadas geográficas conhecidas para os cantos. Para esse mapa, em cada seção de idioma em que é usado, é criado um modelo especial que descreve esses metadados. Tendo esse modelo, podemos aplicá-lo em qualquer página colocando marcadores no topo do mapa para objetos de interesse para nós. As coordenadas dos objetos são descritas na forma de coordenadas geográficas; as fórmulas nos modelos calculam onde exatamente colocar o marcador. Assim, por exemplo, você pode inserir um mapa dessa região em uma página sobre uma região e marcar centros regionais e grandes cidades nela.



Um exemplo de uso de um mapa posicional em um cartão de artigo de Pebble Island. Um marcador vermelho e uma inscrição são automaticamente colocados no site do objeto em cima da imagem do mapa.


Os mapas posicionais são usados ​​em todos os artigos das unidades administrativas: países / distritos / cidades / vilas, etc., bem como em muitos artigos sobre objetos geográficos. Muitas vezes acontece que imediatamente após a criação de um mapa posicional, ele é usado em 20 a 50 artigos existentes na Wikipedia.


Em teoria, um modelo de mapa posicional deve usar dois desenhos de mapa ao mesmo tempo: um mapa "contorno" / "político" e um mapa "físico" / "geográfico" com as mesmas coordenadas, projeção e dimensões. Um mapa de estrutura de tópicos é geralmente vetor (SVG), um mapa físico pode ser vetor, mas na maioria das vezes é uma varredura (geralmente PNG).



Um exemplo de um modelo de mapa posicional com dois tipos de mapas


Existem muitos mapas posicionais: eles devem cobrir todos os níveis do mundo como um todo, para regiões individuais, pequenas ilhas etc. Além do mapa posicional, os chamados Um "localizador" é um mapa no qual a região de interesse para nós é destacada em cores vivas ( um exemplo de um mapa localizador). Tudo é relativamente bom no nível "superior" (mundo, país) com mapas posicionais, mas no "inferior" (nível distrital), tudo geralmente é muito ruim: não há mapas posicionais ou existem, mas de qualidade insuficiente, ou feitos em um estilo inadequado / fora do padrão.


Somente para a Federação Russa, temos 83 entidades, se adicionarmos distritos a isso, provavelmente já receberemos mil ou mais unidades administrativas, cada uma das quais precisa de um mapa de posição, incluindo um mapa de contorno, um mapa físico, um mapa localizador ... Além disso, de tempos em tempos as mudanças estão no formato “uma nova resolução foi emitida”: aparece um documento legal que altera os limites das unidades administrativas, divide / une-os, etc. E, é claro, em todos esses casos, você precisa redesenhar um ou mais mapas posicionais.


Em geral, acho que você já entendeu - os cartões são muito necessários e precisam de muito :)


Dados de origem para mapas


Para mapas de posição, imagens com uma licença gratuita devem ser usadas. Isso significa que os dados de origem desses cartões devem estar livres.


Dados iniciais para os cartões que eu usei:


  • OpenStreetMap - a principal fonte de dados vetoriais; mas lembre-se de que os dados são obtidos pelo crowdsourcing; portanto, em alguns locais, eles são densos e de alta qualidade, em alguns locais muito incompletos. Também existem erros nos dados, portanto, os cartões recebidos devem ser cuidadosamente verificados.
  • GSHHG - dados vetoriais como parte do GMT (veja abaixo); pode ser usado para mapas de grandes escalas, pouco adequados para pequenas escalas.
  • ETOPO1 (resolução ~ 1,85 km, volume ~ 890 MB), ETOPO2 (resolução 2 '~ = 3,6 km) - mapas de altitude, incluindo o relevo do fundo do mar (batimetria).
  • TOPO30 (resolução ~ = 0,9 km, volume ~ 1800 MB) - mapa de altitude, incluindo a topografia do fundo do mar.
  • GLOBO (resolução 30 "~ = 0,9 km) - mapa de altitude.
  • SRTM (resolução SRTM3: 3 "~ = 90m) é um mapa de altura bastante detalhado, mas por isso é bastante pesado (cada arquivo com dados de 1x1 grau pesa ~ 2,8 MB); portanto, você normalmente só precisa baixar os arquivos necessários Além disso, os dados de origem do SRTM têm lacunas que precisam ser fechadas interpolando os pontos ausentes dos vizinhos.Você pode fazer isso sozinho ou usar fontes "preenchidas de vazio", como o SRTM-Plus.O SRTM é um mapa de altura somente para terra, não contém dados sobre a topografia do fundo do mar.

Projeções


Na grande maioria dos casos, trabalhamos com uma projeção chamada "cilíndrica equidistante". A mesma família de projeção inclui a projeção Mercator e seu caso especial - “projeção do Google” ou “projeção da Web Mercator”, usada por todos os principais mapas da web. As fórmulas para essa projeção são bastante simples, além disso, os modelos de mapas posicionais já “conhecem” essa projeção.


Nos poucos casos restantes, você precisará pesquisar no Google a projeção desejada e ler a literatura especial para entender como exatamente as coordenadas x, y são obtidas a partir da latitude e longitude. O Mediawiki possui um mecanismo desenvolvido para calcular expressões (incluindo aquelas com funções trigonométricas), que pode ser usado para verificar seus mapas antes mesmo de criar um modelo de mapa de posição neles (exemplos podem ser encontrados aqui ).


Ferramentas de mapa


Existem muitas ferramentas para criar mapas (sistemas de informações geográficas, GIS), incluindo gratuitos e de código aberto. Mas, para que o cartão seja aberto, não é necessário usar um sistema aberto e livre, basta que os dados de origem estejam abertos e para você colocar a licença aberta no cartão pronto. (Mas provavelmente há muitas nuances aqui, não pretendo entrar no campo dos direitos autorais, não no meu :)


Para criar mapas, usei principalmente os três programas descritos abaixo.


Maperitive


Maperitive é um produto gratuito, mas privado. É extremamente útil ao trabalhar com dados do OpenStreetMap, funciona com dados do site do OSM e com dumps salvos. Permite selecionar um estilista e salvar o mapa no formato SVG. Existem vários estilistas prontos e você pode escrever seus próprios. Eu preparei vários arquivos de estilo e os uso para exportar as fronteiras dos distritos para SVG e mapas dos próprios distritos com assentamentos.


Ferramentas de mapeamento genérico (GMT)


Em geral, o GMT (Generic Mapping Tools) é um conjunto gratuito de utilitários de linha de comando projetados para processar e visualizar dados científicos, incluindo várias de suas ferramentas que permitem trabalhar com dados geográficos, ou seja, podemos usar o GMT como um console GIS. O mapa finalizado (ou uma camada separada para o futuro mapa) é obtido como resultado de uma sequência de utilitários de chamada. Normalmente, escrevo um arquivo em lote no qual todos os parâmetros são definidos e os utilitários são chamados. À primeira vista, parece complicado, mas como programador, essa abordagem parece clara e familiar para mim. Além disso, a repetibilidade é fornecida aqui: para criar um mapa novamente, sempre posso executar o script novamente.


Arquivo em lote de exemplo (veja também aqui ):


set PATH=C:\programs\GMT5\bin;%PATH% set GSBIN=C:\PROGRA~1\gs\gs9.04/bin set COORDSCUT=144.7492/157.3007/42.9694/51.3837 rem width = xmaxsvg / 150.0 * 2.54 set PAPERX=14.9352 rem height = ymaxsvg / 150.0 * 2.54 set PAPERY=16.0189333333333 grdcut.exe ETOPO1_Bed_g_gmt4.grd -R%COORDSCUT% -Gh_cor_cut.grd grdgradient h_cor_cut.grd -Ne0.3 -A315 -M -Ghi.grd grdimage h_cor_cut.grd -Ihi.grd -Cwiki-water-verlauf2.cpt -P -R%COORDSCUT% -JX%PAPERX%cd/%PAPERY%cd --PAPER_MEDIA=Custom_%PAPERX%cx%PAPERY%c -X0 -Y0 -K > map.eps pscoast.exe -JX%PAPERX%cd/%PAPERY%cd -R%COORDSCUT% -Gc -P -Df --PAPER_MEDIA=Custom_%PAPERX%cx%PAPERY%c -X0 -Y0 -O -K >> map.eps grdimage h_cor_cut.grd -Ihi.grd -Cmount.cpt -P -R%COORDSCUT% -JX%PAPERX%cd/%PAPERY%cd --PAPER_MEDIA=Custom_%PAPERX%cx%PAPERY%c -X0 -Y0 -O -K >> map.eps pscoast.exe -JX%PAPERX%cd/%PAPERY%cd -R%COORDSCUT% -Q -P -Df --PAPER_MEDIA=Custom_%PAPERX%cx%PAPERY%c -X0 -Y0 -O -K >> map.eps pscoast.exe -JX%PAPERX%cd/%PAPERY%cd -R%COORDSCUT% -Na -Ia/0.25p,#0978AB -W0.25,#0978AB -P -Df --PAPER_MEDIA=Custom_%PAPERX%cx%PAPERY%c -X0 -Y0 -O >> map.eps %GSBIN%\gswin32c.exe -dSAFER -dBATCH -dNOPAUSE -dGraphicsAlphaBits=4 -sDEVICE=pngalpha -dEPSCrop -r150 -sOutputFile=Oblast_etopo.png map.eps 

Resultado:


Como parte do GMT, juntamente com as ferramentas de linha de comando, os dados também são fornecidos, esse conjunto é chamado GSHHG , os mapas a partir desses dados são criados usando o utilitário pscoast incluído no GMT.


Inkscape


O Inkscape é um editor de gráficos vetoriais aberto e gratuito, cujo formato principal é SVG.


Normalmente, uso o Maperitive e o GMT como ferramentas para preparar camadas separadas do mapa futuro. Em seguida, as camadas resultantes são importadas para camadas separadas no documento do Inkscape e todo o trabalho final no mapa já está lá. Assim, por exemplo, para um mapa posicional, é necessário que a área mostrada no mapa seja “destacada” - com cores no mapa de contorno e sombreamento no mapa físico. Este já é um trabalho manual sobre objetos e camadas no Inkscape.


A etapa final na preparação de imagens de mapa é salvar SVG (para um mapa vetorial) ou exportar PNG (para varredura).


Processo de criação de mapas


  1. Normalmente começo pegando a área do mapa futuro e olhando para os dados de origem que tenho para essa área. Crio um mapa de contorno primitivo via GMT nos dados GSHHG, tento renderizar o relevo da mesma área nos dados ETOPO1, TOPO30, observe como essa área fica no OpenStreetMap. Acontece que eu me recuso a criar um mapa nesse estágio se perceber que os dados disponíveis não são suficientes ou são de baixa qualidade, contêm erros ou grandes lacunas.
  2. Além disso, com base nas representações aproximadas, escolho em quais dados farei o mapa.
  3. Crie camadas de mapa separadas. Como regra, uma camada separada de fronteiras é obtida separadamente (por exemplo, um vetor do OSM), uma imagem de relevo separada para terra e uma camada separada de relevo subaquático (batimetria), uma camada separada de linhas costeiras e uma camada de rios e reservatórios. Muitas vezes acontece que duas camadas de varredura têm resoluções diferentes, e aqui você precisa brincar com a interpolação para que, juntas, pareçam mais ou menos orgânicas. Por exemplo, um mapa de terreno é retirado do ETOPO1, porque essa área é melhor representada lá e a batimetria é retirada do TOPO30, e a resolução dessas duas fontes difere pela metade. Então, para uma resolução mais baixa, aumentamos a resolução com interpolação para que “quadrados” não apareçam, o efeito moiré não apareça, etc.
  4. Usando o Inkscape, reunimos as camadas individuais do mapa. Realizamos o trabalho manual necessário, se necessário. Tentamos exportar o mapa para uma varredura, considerar e identificar cuidadosamente os defeitos, corrigir e repetir. O resultado são arquivos de mapa prontos para upload no Wikimedia Commons.
  5. Carregamos arquivos de mapa no Wikimedia Commons, realizamos documentação lá. Sobre cada arquivo, deve ser escrito que tipo de mapa é, qual objeto, com quais coordenadas e em que projeção, quais dados de origem são usados ​​com quais licenças, quais ferramentas o trabalho é feito.
  6. Criamos ou atualizamos o modelo de mapa posicional no ru-wiki, verifique seu uso. Garantimos que os objetos estejam nos lugares certos no mapa, ou seja, que as coordenadas dos cantos do mapa estão definidas corretamente e o próprio mapa corresponde a essas coordenadas. Depois disso, atualizamos os modelos para esse mapa posicional em outras seções do idioma.

Conclusão


Levei 20 a 30 minutos para criar um mapa (em casos simples, quando uma série do mesmo tipo de mapa distrital é feita como em uma correia transportadora), até 4-6 horas (em casos difíceis, quando havia problemas com os dados de origem e era necessário fazer muito manual trabalho). Levou vários dias para o mapa físico do Canadá (veja KDPV): levei para pegar a projeção que já estava sendo usada no mapa geral.


Se falarmos sobre "o que recebo disso", provavelmente - muito prazer estético, de que tipo de cartas são obtidas.


Obrigado pela leitura, espero que minha experiência seja útil de alguma forma :)

Source: https://habr.com/ru/post/pt451418/


All Articles