Experiencia en la creación de mapas posicionales para Wikipedia

Durante varios años trabajé en mapas que se usan en secciones rusas y en otros idiomas de Wikipedia. En total, he creado más de 300 cartas . No soy un cartógrafo profesional y no tengo educación especial en esta área. Aparentemente, me gustaba hacer tarjetas :)


En este artículo, quiero compartir la experiencia de crear mapas para Wikipedia, con un enfoque en mapas posicionales.



Mapa fisico de Canada


Tarjetas de posición


Todos los materiales gráficos de Wikipedia publicados bajo licencias gratuitas están alojados en Wikimedia Commons , lo que les permite ser utilizados en cualquier proyecto de Wikimedia y en todas las secciones de idiomas de Wikipedia.


Entre todos los tipos de mapas en Wikipedia, se destacan los llamados "mapas posicionales". La peculiaridad aquí es que no es solo una imagen de un mapa, sino una imagen en una proyección conocida, con coordenadas geográficas conocidas para las esquinas. Para dicho mapa, en cada sección de idioma donde se usa, se crea una plantilla especial que describe estos metadatos. Con una plantilla de este tipo, podemos aplicarla en cualquier página colocando marcadores en la parte superior del mapa para los objetos que nos interesan. Las coordenadas de los objetos se describen en forma de coordenadas geográficas, las fórmulas en las plantillas calculan exactamente dónde colocar el marcador. Entonces, por ejemplo, puede insertar un mapa de esta región en una página sobre una región y marcar centros regionales y grandes ciudades en ella.



Un ejemplo de uso de un mapa posicional en una tarjeta de artículo sobre Pebble Island. Un marcador rojo y una inscripción se colocan automáticamente en el sitio del objeto en la parte superior de la imagen del mapa.


Los mapas posicionales se utilizan en todos los artículos sobre unidades administrativas: países / distritos / ciudades / pueblos, etc., así como en muchos artículos sobre objetos geográficos. A menudo sucede que inmediatamente después de crear un mapa posicional, se usa en 20-50 artículos de Wikipedia existentes.


En teoría, una plantilla de mapa posicional debería usar dos dibujos de mapas a la vez: un mapa "de contorno" / "político" y un mapa "físico" / "geográfico" con las mismas coordenadas, proyección y dimensiones. Un mapa general suele ser un vector (SVG), un mapa físico puede ser un vector, pero la mayoría de las veces es un ráster (generalmente PNG).



Un ejemplo de una plantilla de mapa posicional con dos tipos de mapas.


Hay muchos mapas posicionales: deben cubrir todos los niveles, desde el mundo en su conjunto hasta regiones individuales, pequeñas islas, etc. Además del mapa posicional, el llamado Un "localizador" es un mapa en el que la región de interés para nosotros se resalta en color brillante ( un ejemplo de un mapa localizador). Todo es relativamente bueno en el nivel "superior" (mundo, país) con mapas posicionales, pero en el "nivel inferior" (nivel de distrito), a menudo todo es bastante malo: no hay mapas posicionales o los hay, pero de mala calidad, o están hechos en un estilo inapropiado / no estándar.


Solo para la Federación de Rusia, tenemos 83 entidades, si agregamos distritos a esto, probablemente ya recibiremos mil o más unidades administrativas, cada una de las cuales necesita un mapa de posición, que incluye un mapa de contorno, un mapa físico, un mapa de localización ... Además, de vez en cuando los cambios están tomando la forma de "se ha emitido una nueva resolución": aparece un documento legal que cambia los límites de las unidades administrativas, las divide / une, etc. Y, por supuesto, en todos estos casos, debe volver a dibujar uno o más mapas posicionales.


En general, creo que ya entendiste: las tarjetas son muy necesarias y necesitan mucho :)


Fuente de datos para mapas


Para los mapas posicionales, se deben usar imágenes con una licencia gratuita. Esto significa que los datos de origen para tales tarjetas deben ser libres.


Datos iniciales de las tarjetas que utilicé:


  • OpenStreetMap - la fuente principal de datos vectoriales; pero tenga en cuenta que los datos se obtienen mediante crowdsourcing, por lo que en algunos lugares son densos y de alta calidad, en algunos lugares son muy incompletos. También hay errores en los datos, por lo que las tarjetas recibidas deben revisarse cuidadosamente.
  • GSHHG: datos vectoriales como parte de GMT (ver más abajo); puede usarse para mapas de escalas grandes, poco adecuados para escalas pequeñas.
  • ETOPO1 (resolución ~ 1.85 km, volumen ~ 890 MB), ETOPO2 (resolución 2 '~ = 3.6 km) - mapas de altitud, incluido el relieve del fondo marino (batimetría).
  • TOPO30 (resolución ~ = 0.9 km, volumen ~ 1800 MB) - mapa de altitud, incluida la topografía del fondo marino.
  • GLOBO (resolución 30 "~ = 0.9 km) - mapa de altitud.
  • SRTM (resolución SRTM3: 3 "~ = 90m) es un mapa de altura bastante detallado, pero debido a esto es bastante pesado (cada archivo con datos de 1x1 grado pesa ~ 2.8 MB), por lo que generalmente solo necesita descargar los archivos necesarios Además, los datos de origen de SRTM tienen brechas que deben cerrarse interpolando los puntos faltantes de los vecinos. Puede hacerlo usted mismo o usar fuentes "llenas de vacíos", como SRTM-Plus. SRTM es un mapa de altura solo para tierra, no contiene datos sobre la topografía del fondo marino.

Proyecciones


En la gran mayoría de los casos, trabajamos con una proyección que se llama "cilíndrica equidistante". La misma familia de proyección incluye la proyección de Mercator y su caso especial: "proyección de Google" o "proyección de Web Mercator", que se utiliza en todos los mapas web más importantes. Las fórmulas para esta proyección son bastante simples, además, las plantillas de mapas posicionales ya "conocen" esta proyección.


En los pocos casos restantes, deberá buscar en Google la proyección deseada y leer literatura especial para comprender cómo se obtienen exactamente las coordenadas x, y a partir de la latitud y la longitud. Mediawiki tiene un mecanismo desarrollado para calcular expresiones (incluidas las que tienen funciones trigonométricas), se puede utilizar para verificar sus mapas incluso antes de crear una plantilla de mapa de posición (se pueden encontrar ejemplos aquí ).


Herramientas de mapas


Existen muchas herramientas para crear mapas (sistemas de información geográfica, SIG), incluidos los gratuitos y de código abierto. Pero para que la tarjeta esté abierta no es necesario usar un sistema abierto y libre, es suficiente que los datos de origen estén abiertos y que usted pueda colocar la licencia abierta en la tarjeta terminada. (Pero probablemente hay muchos matices aquí, no pretendo arrastrarme en el campo de los derechos de autor, no el mío :)


Para crear mapas, utilicé principalmente los tres programas que se describen a continuación.


Maperitivo


Maperitive es un producto gratuito pero privado. Es extremadamente útil cuando se trabaja con datos de OpenStreetMap, funciona con datos tanto del sitio web de OSM como con volcados guardados. Le permite seleccionar un estilista y guardar el mapa en formato SVG. Hay varios estilistas confeccionados y puedes escribir los tuyos. He preparado varios archivos de estilo, y los uso para exportar las fronteras de los distritos a SVG, y mapas de los propios distritos con asentamientos.


Herramientas de mapeo genérico (GMT)


En general, Generic Mapping Tools (GMT) es un conjunto gratuito de utilidades de línea de comando diseñado para procesar y visualizar datos científicos, incluidas algunas de sus herramientas que le permiten trabajar con geodatos, es decir. podemos usar GMT como consola GIS. El mapa terminado (o una capa separada para el mapa futuro) se obtiene como resultado de una secuencia de utilidades de llamada. Por lo general, escribo un archivo por lotes en el que se establecen todos los parámetros y se llaman las utilidades. A primera vista parece complicado, pero como programador, este enfoque me parece claro y familiar. Además, aquí se proporciona la repetibilidad: para volver a crear un mapa, siempre puedo volver a ejecutar el script.


Ejemplo de archivo por lotes (ver también aquí ):


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 de GMT, junto con las herramientas de línea de comandos, también se proporcionan datos, este conjunto se llama GSHHG , los mapas de estos datos se crean utilizando la utilidad pscoast incluida en GMT.


Inkscape


Inkscape es un editor de gráficos vectoriales gratuito y abierto cuyo formato principal es SVG.


Usualmente uso Maperitive y GMT como herramientas para preparar capas separadas del mapa futuro. Luego, las capas resultantes se importan en capas separadas en el documento de Inkscape, y todo el trabajo final en el mapa ya está allí. Entonces, por ejemplo, para un mapa posicional, es necesario que el área que se muestra en el mapa esté “resaltada”, con color en el mapa de contorno y sombreado en el mapa físico. Esto ya es un trabajo manual en objetos y capas en Inkscape.


El último paso para preparar las imágenes del mapa es guardar SVG (para un mapa vectorial) o exportar PNG (para ráster).


Proceso de creación de mapas


  1. Por lo general, empiezo tomando el área del mapa futuro y mirando los datos de origen que tengo para esta área. Creo un mapa de contorno primitivo a través de GMT en los datos de GSHHG, trato de mostrar el relieve de la misma área en los datos de ETOPO1, TOPO30, miro cómo se ve esta área en OpenStreetMap. Sucede que me niego a crear un mapa en esta etapa si veo que los datos disponibles no son suficientes o son de baja calidad, contienen errores o grandes lagunas.
  2. Además, en función de las representaciones aproximadas, elijo en qué datos haré el mapa.
  3. Crea capas de mapa separadas. Como regla general, se obtiene una capa separada de bordes por separado (por ejemplo, un vector de OSM), una imagen de relieve separada para tierra y una capa separada de relieve submarino (batimetría), una capa separada de costas y una capa de ríos y embalses. A menudo sucede que dos capas ráster tienen resoluciones diferentes, y aquí tienes que jugar con la interpolación para que juntas se vean más o menos orgánicas. Por ejemplo, se toma un mapa de tierra de ETOPO1 porque esta área está mejor representada allí, y la batimetría se toma de TOPO30, y la resolución de estas dos fuentes difiere a la mitad. Luego, para una resolución más baja, aumentamos la resolución con interpolación para que no aparezcan "cuadrados", no aparezca el efecto muaré, etc.
  4. Usando Inkscape, reunimos las capas individuales del mapa. Realizamos el trabajo manual necesario, si es necesario. Intentamos exportar el mapa a un ráster, consideramos e identificamos cuidadosamente los defectos, corregimos y repetimos. El resultado son archivos de mapas listos para cargar en Wikimedia Commons.
  5. Subimos archivos de mapas a Wikimedia Commons, llevamos a cabo la documentación allí. Cada archivo debe escribirse sobre qué tipo de mapa es, qué objeto, con qué coordenadas y en qué proyección, qué datos de origen se utilizan con qué licencias, qué herramientas se realiza el trabajo.
  6. Creamos o actualizamos la plantilla de mapa posicional en ru-wiki, verificamos su uso. Nos aseguramos de que los objetos estén en los lugares correctos del mapa, es decir que las coordenadas de las esquinas del mapa están establecidas correctamente, y el mapa en sí corresponde a estas coordenadas. Después de eso, actualizamos las plantillas para este mapa posicional en otras secciones de idiomas.

Conclusión


Me llevó 20-30 minutos crear un mapa (en casos simples, cuando se realiza una serie del mismo tipo de mapas de distrito como en una cinta transportadora), hasta 4-6 horas (en casos difíciles, cuando hubo problemas con los datos de origen y fue necesario hacer mucho manual trabajo) Me llevó varios días llegar al mapa físico de Canadá (ver KDPV): me llevó a recoger la proyección que ya se usaba en el mapa general.


Si hablamos de "lo que obtengo de esto", entonces probablemente - mucho placer estético, de qué tipo de tarjetas se obtienen.


Gracias por leer, espero que mi experiencia sea útil de alguna manera :)

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


All Articles