IniciProgramació

logo

WMS

WMS és l'acrònim de Web Map Service. En una interpretació simplificada, és només una línia de codi a introduir a la barra de direccions dels nostre navegador d'internet. El resultat és una imatge amb informació cartogràfica, de geologia, urbanística, o d'altres tipus subministrats per aplicacions web. El format de línia correcte i la interpretació del seu codi el podem realitzar per enginyeria inversa. En alguns casos les pàgines web del servidor proporcionen dades sobre el codi. En resum, és un sistema GIS minimalista en una sóla línia de codi. Anem a veure uns exemples i com usar-ho de forma pràctica.

Codi WMS:

EXEMPLE 1: ortofoto en alta resolució

http://mapcache.icc.cat/map/bases/service?LAYERS=orto&FORMAT=image/jpeg&EXCEPTIONS=application/vnd.ogc.se_xml&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG:25831&BBOX=271568,4533768,272068,4534268&WIDTH=4000&HEIGHT=4000

Explicació:
Aquest enllaç obre una ortofoto en alta resolució del servidor de l'Institut Cartogràfic de Catalunya (icc.cat). En aquest cas és una cruïlla de carreteres al termu mucipial d'Horta de Sant Joan, a Catalunya. Fixeu-vos atentament en el codi, sempre és similar (desxifrar codi):

style="code" > http://mapcache.icc.cat < És el servidor principal
LAYERS=orto& < Especifica que la capa a descarregar és una ortofoto
FORMAT=image/jpeg < Especifica fomat jpeg
SERVICE=WMS&VERSION=1.1.1
SRS=EPSG:25831 < Especifica el sistema geogràfic de referència usat a Catalunya (ETRS89 UTM zona 31N)
BBOX=271568,4533768,272068,4534268 < Aquesta és la part més important, epecifica coordenades UTM x1,y1,x2,y2 del rectangle a descarregar. Punt (x1,y1) abaix a l'esquerra, punt (x2,y2) adalt a la dreta.
WIDTH=4000 < Especifica l'amplada en pixels del quadre
HEIGHT=4000 < Especifica l'alçada en pixels del quadre

Només modificant les coordenades a continuació de "BBOX" i les amplades "WIDTH" i "HEIGHT", podem obtenir ortofotos de qualsevol altre part, a condició que el servidor proporcioni dades en el punt especificat. L'amplada i l'alçada han de ser proporcionals a les mides del rectangle definit pels punts (x1,y1) (x2,y2). També hi han límits a la resolució en nombre de pixels en relació a les dimensions del quadre. Cal fer algunes proves per aconseguir resultats exitosos. Amb el ratolí, botó de la dreta fem "Desar imatge com...".

EXEMPLE 2: Canvis de LAYER per obtenir diferents resultats

Usant un altre servidor de l'ICC:

http://geoserveis.icc.cat/icc_mapesbase/wms/service?REQUEST=GetMap&VERSION=1.1.0&SERVICE=WMS&SRS=EPSG:25831&BBOX=440239,4600020,440639,4600420&WIDTH=2000&HEIGHT=2000&LAYERS=orto10c&STYLES=&FORMAT=JPEG&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTION=INIMAGE

Aquí el LAYER principal es diu "orto10c". L'ús de coordenades "BBOX" i dimensions en pixels "WIDTH" i "HEIGHT" és similar. Veiem què passa si modifiquen el layer "orto10c" per "mtc5m":

http://geoserveis.icc.cat/icc_mapesbase/wms/service?REQUEST=GetMap&VERSION=1.1.0&SERVICE=WMS&SRS=EPSG:25831&BBOX=440239,4600020,440639,4600420&WIDTH=2000&HEIGHT=2000&LAYERS=mtc5m&STYLES=&FORMAT=JPEG&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTION=INIMAGE

Obtenim el mateix quadre però amb cartografia 1:5000 en comptes d'ortofoto. Per aquest servidor, l'ICC informa que les capes disponible són:

Mapa topogràfic de Catalunya 1:5.000 mtc5m Totes les escales
Mapa topogràfic de Catalunya 1:10.000 mtc10m Totes les escales
Mapa topogràfic de Catalunya 1:25.000 mtc25m Totes les escales
Mapa topogràfic de Catalunya 1:50.000 mtc50m Totes les escales
Mapa topogràfic de Catalunya 1:250.000 mtc250m Totes les escales
Mapa topogràfic de Catalunya 1:500.000 mtc500m Totes les escales
Mapa topogràfic de Catalunya 1:1.000.000 mtc1000m Totes les escales
Ortofoto de Catalunya 1:1.000 vigent (cobertura parcial) orto10c Totes les escales
Ortofoto de Catalunya 1:2.500 vigent orto25c Totes les escales
Ortofoto de Catalunya 1:5.000 vigent orto5m Totes les escales
Ortofoto de Catalunya 1:25.000 vigent orto25m Totes les escales
Ortofoto infraroja de Catalunya 1:2.500 vigent ortoi25c Totes les escales
Ortofoto infraroja de Catalunya 1:5.000 vigent ortoi5m Totes les escales
Ortofoto infraroja de Catalunya 1:25.000 vigent ortoi25m Totes les escales
Imatge satèl·lit de Catalunya 1:250.000 sat250m Totes les escales

Per saber quins són els noms dels LAYERS disponibles cal cercar informació a la web de la institució que proporciona les dades, o usar enginyeria inversa estudiant el codi general al carregar diferents capes. Hi ha servidors per a múltiples temàtiques interessant per a l'enginyeria civil, geologia, delimitació d'espais naturals, planejament urbanístic, patrimoni arqueològic,... Al següent exmple veurem com obtenir codis WMS ocults a la web...

EXEMPLE 3: Com trobar el codi dels servidors WMS disponible


Novament, cal cercar informació a la web de la institució que proporciona mapes, el que no sempre és publicat, o usar enginyeria inversa, cercar i estudiar els codis generats. Generalment, es tracta d'obrir el servidor de mapes, i amb el botó

1) Obrir un servidor de mapes online subministrat per alguna institució pública o privada. Per exemple obribrem el mapa geològic de l'Institut Geològic de Catalunya, que té la següent adreça web:
https://www.icgc.cat/en/Public-Administration-and-Enterprises/Downloads/Geological-and-geothematic-cartography/Geological-cartography/Geological-map-1-50-000
2) Ara cal trobar el codi del servidor intern WMS...
3) Usant el navegador Firefox (o altres) amb el botó de la dreta fer "Inspeccionar" i apareix una finestra de codi a la part inferior.
4) Cercar a la pestanya "xarxa" (Monitor de xarxa). Aquí hem de trobar unes línies de codi que parlen de "WMSServer" o "service=WMS" o similar. És el que estem cercant!
5) Copiar una de les líies de codi que contenen la paraula WMS i tenen l'estructura necessària, i verificar el resultat.
6) Per exemple, al primer intent he trobat el codi:
Les lńies WMS que més ens interessen són aquelles en que les coordenades especifiacdes a "BBOX" són UTM, ja que les unitats són metres i molt fàcil d'interpretar. Hi ha alguns servidors WMS que usen sistemes de referència diferents (codi associat al paràmetre "EPSG" https://siurana.icgc.cat/arcgis/services/geologic/icgc_mg250m/MapServer/WMSServer?=&service=WMS&request=GetMap&layers=UGEO_PA&styles=&format=image/png&transparent=true&version=1.1.1&nom=Unitats geològiques&tipus=wms&businessId=a8c42945fbd6de690b1d8080f2fbdf44&width=512&height=512&srs=EPSG:3857&bbox=0,5087648.602661333,78271.51696402048,5165920.119625352

https://geoserveis.icgc.cat/arcgis/services/geologic/icgc_mg250m/MapServer/WMSServer?&service=WMS&request=GetMap&layers=UGEO_PA&styles=&format=image%2Fpng&transparent=true&version=1.1.1&nom=Unitats%20geol%C3%B2giques&tipus=wms&businessId=a8c42945fbd6de690b1d8080f2fbdf44&width=512&height=512&srs=EPSG%3A3857&bbox=156543.03392804097,5165920.119625352,234814.5508920615,5244191.636589374

Que te l'estructura adequada i proporciona bons resultats. Recordi que hem d'ajustar les coordenades a continuació de "bbox" i els pixels "width" i "heigth" si necessari. En aquest cas la capa és "layers=UGEO_PA". El sistema cartogràfic és EPSG:3857 (WGS84 Pseudo-Mercator)

En resum, recopilar servidors WMS i conèixer els codis per a descarregar les nostres imatges georeferenciades és quelcom molt interessant i útil. Les institucions públiques que paguem entre tots no sempre proporcionen arxius en format vectorial georeferenciat per a descarregar (dxf, dwg,...). En aquest casos, conèixer com usar i descarregar directament imatges WMS pot ser una alternativa molt simple i pràctica. Aquí només hem parlat de com descarregar manualment imatge per imatge editant el codi. No obstant, aquesta tasca també la he automatitzat per a múltiples imatges amb un script bash (enllaç). I usant la filosofia UNIX de fer programes senzills que facin una cosa, la facin bé, i estiguin connectats entre ells, també està resolt amb un altre script bash, com descarregar múltiples quadres i carregarlos com a referències externes a un arxiu DXF usant l'aplicació FortranCAD.



Saber més sobre l'estandard WMS aquí:
https://portal.ogc.org/files/?artifact_id=14416