Cómo reproyectar un shapefile en QGIS 1.8?

Ayer, en un comentario de un post del Blog, me señalan la imposibilidad de abrir un kml en ArcGis (no me especifican la versión) y me agradecen una solución alternativa en QGIS que incluyera también la reproyección de WGS 84 long/lat a WGS 84 UTM zona 13. Aunque tenía más de un año que no usaba ArcGis (solía emplear las versiones 9.2 ó 9.3), como recientemente me instalé la versión 10.1 (también sin uso), me entró la curiosidad por averiguar que tan difícil podría ser abrir un kml con este software; algo sencillo de hacer en QGIS.

Para ello, coloqué un punto arbitrario en Zacatecas, México (zona 13 UTM), con Google Earth, y lo grabé como kml con los settings para grados decimales. Como era de esperar, el kml pudo ser abierto en QGIS con algunos campos de su tabla atributiva en NULL y una proyección WGS 84 long/lat. Sin embargo, no pude abrirlo directamente en ArcGis 10.1 como kml. Por tanto, busqué en las ArcToolBox alguna alternativa de transformación del kml y me permitía, como única opción, la conversión a *.lyr. Con esto si pude abrirlo en ArcGis y su despliegue en la vista era idéntico al de Google Earth y con la diferencia, con respecto al QGIS, que todos los campos de la tabla atributiva tenían valores diferentes de NULL.

Como tuve algunos problemas tratando de buscar una opción de transformación a shapefile y reproyección del *.lyr en el ArcGis 10.1 y no estaba para investigar “alternativas” que probablemente nunca usaré, me centré nuevamente en QGIS. En la versión 1.9 inestable, propia de Debian testing o Sid, aparece en el menú de manejo de archivos vectoriales de QGIS la opción para reproyectar un archivo vectorial. Sin embargo, en la 1.8, esta opción no está disponible (aunque si para ráster). Aunque ésto al inicio me desconcertó, pensando un poco me di cuenta que estableciendo en las opciones de Configuración de QGIS, pestaña SRC, “Activar reproyección al vuelo por defecto”, estaba la solución. Por tanto, si se dispone de un vectorial proyectado en WGS 84 long/lat y se quiere desplegar en la vista como WGS 84 UTM zona 13, hay que activar en Archivo -> Propiedades del Proyecto -> Sistema de referencia de coordenadas (SRC) la correspondiente a WGS 84 UTM zona 13.

Sin embargo, para que tome la proyección debida hay que “Guardar como” shapefile WGS 84 UTM zona 13; obviamente con un nombre diferente. No es “suficiente” con hacer Vectorial -> Herramientas de gestión de datos -> Definir la proyección actual; tal como se observa en la siguiente imagen (donde no hay “reproyección al vuelo por defecto”):

proyeccion

El anterior es un ejemplo “exagerado” donde es fácilmente darse cuenta del error pero puede ser difícil de detectar si ambas proyecciones, las del shapefile y la del proyecto, son diferentes y están en metros. Por eso hay tantas exposiciones de problemas en los foros donde refieren “me pasaron unos shapefiles y, a pesar de que tienen el mismo *.prj, están notablemente desplazados”. Esta podría ser una de las causas.

Esta entrada fue publicada en QGIS, SIG, Software Libre. Guarda el enlace permanente.

28 respuestas a Cómo reproyectar un shapefile en QGIS 1.8?

  1. elGolem dijo:

    Hace un par de semanas encontré esto http://converter.mygeodata.eu/
    Por detrás está GDAL/OGR y funciona perfectamente, Saludos.

    • Gracias por el link. Pude comprobar que esta aplicación web funcionaba de manera rápida y adecuadamente; por lo menos para shapefiles de poco peso. No obstante, con QGIS (para el cual también está detrás GDAL/OGR) puedo abrir directamente el archivo, no requiero comprimirlos todos en un zip y puedo prescindir de una conexión a Internet.

      Saludos

      Nota: Por cierto, me gustó tu Blog y ya me he leído, por el principio (desde el 2005), un buen número de artículos.

      • elGolem dijo:

        Gracias por lo del blog y por el esfuerzo de leerlo, no estoy seguro de haberme leído yo tanto😀
        Comenté esa aplicación porque nos puede sacar de un apuro; está claro que el ciclo de comprimir, enviar, descargar, descomprimir es una molestia pero aún así es muy interesante como recurso. Yo he probado con raster de 800 MB y va perfectamente. Es una lástima que aún no haya ningún SIG que haya desarrollado un “frontend” similar para hacerlo en local. Saludos.

      • ING. SANTIAGO FLORES ESPINO dijo:

        SANTIAGO FLORES DE ZACATECAS.
        BUENOS DIAS. LEI TU COMENTARIO QUE ME MANDASTE Y EL QUE HICISTE EL 19 DE MAYO, MIRA NO ESTOY SEGURO PARESE QUE YA HICE, LA CONVERCION ME CREA LOS SIGUIENTES ARCHIVOS ( POR EJEMPLO FERNANDO CON EXTENCION dbf, prj,qpj,shp y shx ) Y LO HICE DE LA SIGUIENTE MANERA GUARDE MI ARCHIVO KML EN SHAPEFILE DANDOLE LO PROYECTADO EN WSG84 / UTM ZONE 13N Y LUEGO ACTIVE LA TRANSFORMACION DEL SRC AL VUELO CON WSG84 / UTM ZONE 13N EN UN MENSAJE DEL QGIS ME DICE QUE NO ESTA DEFINIDO REPROYECTADO PERO QUE LO HACE POR DEFAULT Y AHORA LO DA EN LAS COORDENDAS ( X,Y). QUIERO QUE ME CONFIRMES SI REALMENTE LO HICE BIEN Y SE CREADO LO QUE ME ESTAN PIDIENDO FORMATO SHAPE EN PROYECION UTM LA ZONE EN QUE CORRESPNDA, Y EL ARCHIVO EN PARAMETROS DE PROYECION *prj SALUDOS.

  2. Abre el *.pjr (es texto plano) y si te aparece algo como esto:

    PROJCS["WGS_1984_UTM_Zone_13N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],
    PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-105],PARAMETER["scale_factor",0.9996],
    PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
    

    aparentemente está bien; sobre todo si las coordenadas x,y están en metros.

    • ING. SANTIAGO FLORES ESPINO dijo:

      BUENAS TARDES JOSE LA INFORMACION QUE ME ENVIASTE ES AFIRMATIVA es EL *.prj es el mismo. voy a mandar dicha información a la secretaria de agricultura en la Cd. México para checar su pueden abrir dichos archivos, estamos en contacto que tengas un excelente día. saludos atte. Ing. Santiago Flores Espino

      • ING. SANTIAGO FLORES ESPINO dijo:

        JOSE GUERRERO BUENOS DIAS MANDE LOS DATOS EN QGIS Y NO LOS PUDIERON ABRIR ME LO ESTAN PIDIENDO EN ARCGIS YO TENGO LA VERSION 10.1 EN ARCGIS HICE LO SIGUIENTE CARGUE EL KML Y ME LO DA EN CAPA lyr. COMO TU TAMBIEN LO HICISTE Y LUEGO HICE LO SIGUIENTE : ABRI EL CATALOG + SYSTEM TOOLBOXES+DATA MANAGEMENT TOOLS TBX+PROJECTIONS AND TRANSFORMATION +CREATE CUSTOM GEOGRAPHIC TRANSFORMATION ME DA UN RECUADRO DONDE LO DOY EL NOMBRE Y ABRO INPUT GEOGRAPHIC COORDINATE SYSTEM Y LE DOY EL DE LA LAYERS QUE ES GCS WSG84 Y ABRI OUTPUT GEOGRAPHIC COORDINATE SYTEM LES DI LAS DE NUETRA ZONA Y DE ALLI ME PERDI NO SUPE DAR LO SIGUIENTE EL PROGRAMA SI PROCESA PERO NO ME DA LOS CAMBIOS, ME IMAGINO QUE TODO ESTO SE DEBE HACER CON EL FORMATO SHAPE PRIMERAMENTE ANTES DE HACER LO ANTES MENCIONADO. SALUDOS QUE TENGAS UN DIA. ESPERO QUE AYUDES COMO HACERLO EN ARCGIS 10.1 PARA GENERAR LOS SIGUIENTES ARCHIVOS CON EXTENCION dbf, prj,sbn, sbx, shp. y shx

  3. Hazlo en QGIS como está aquí:

    Cómo reproyectar un shapefile en QGIS 1.8?

    No tendrán problemas para abrir el shapefile.

  4. PazC dijo:

    Hola José.
    Llevo varios dias volviendome loca investigando como reproyectar en Qgis a WGS84 pseudo mercator (proyección de google y OSM). Solo necesito superponer una ruta que tengo en EPSG 4326, sobre la cartografia raster de Openstreetmap, para lo cual primero debo reproyectar la ruta para que al meter OSM con el plugin de openlayers, quede en su sitio.
    Parece sencillo, pero no lo es, o por lo menos para mi. Quizas porque he probado con varios programas ya como Gvsig y Qgis, y para empezar, los códigos EPSG no son los mismo en ambos programas. En Q-gis es la 3857 y en Gvsig es la 3785…y tambien hay una 900913..en fin, una locura
    Voy a intentar realizar la reproyección como indicas, ya que a mi me pasó lo mismo, no encontré la opción de reproyectar en vectorial, aunque sí hay esta opción en raster. Probaré también la opcion de converter.mygeodata.
    A ver si funcionan!!
    Gracias por los aportes
    Saludoss

    • Los códigos son únicos y estandarizados por la European Petroleum Survey Group. El 3857 y el 3785 están ambos en QGIS. No los filtraste adecuadamente en el browser (selector) de referencia de coordenadas. La “locura” te la aclaran aquí:

      http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/

      Léela bien para que sepas que hacer.

      Estas son las convenciones en proj.4:

      Pseudo Mercator EPSG 3857
      +proj=merc +lon_0=0 +lat_ts=0 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +units=m +no_defs

      Popular Visualisation CRS Mercator EPSG 3785 (en desuso, obsoleta, aparentemente abandonada en favor de la 3857)
      +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs

      Google Mercator ESPG 900913 (idéntica a la Popular Visualisation CRS Mercator)
      +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs

  5. PazC dijo:

    Muchas gracias por la explicación, lo leeré detenidamente.
    Ya conseguí superponer la ruta, estimo que la reproyecta al vuelo, pues estando el shp en EPSG 4326 y la cartografía de OSM (plugin) en 3857, al colocar ambas, queda perfectamente encajada….
    De todas maneras, por quitar la duda, he vuelto a abrir gvSIG y el nombre del código EPSG 3785 es “WGS84/Pseudo-mercator”, ….
    Sigue creandome confusión el hecho de que en Gvsig la denomine “Pseudo-Mercator”, y en Qgis sea la “Popilar Visualisation CRS Mercator”
    leere detenidamente el archivo que me envía
    De nuevo, muchas gracias

  6. PazC dijo:

    Muchas gracias por la explicación y el aporte
    Para quedarme sin dudas, volví a abrir Gvsig y al código EPSG se le denomina “WGS84 Pseudo-Mercator”.
    Sigo sin entender bien por qué en gvSIG el EPSG 3785 se denomina “WGS84 Pseudo-Mercator”, mientras que por tus explicaciones, este código se corresponde a “Popular Visualisation CRS Mercator”.
    Leeré detenidamente el enlace que envías
    De nuevo, muchas gracias

  7. arqva dijo:

    Hola José Guerrero,

    Primero quiero felicitarte por el blog, me ayudaste con el tema de la reproyección en el QGIS.
    Soy arquitecta y por un proyecto territorial entré el el mundo del gis, poco a poco voy aprendiendo.
    Normalmente trabajo con autocad , me recomendaron el QGis, instalé la versión 1.8 y pruebo cosas.
    Recibí unos shapes que tenían las coordenadas en UTM (perfecto para trabajar) pero luego las otras enviaron en WGS 84.
    Seguí los pasos del blog y pude guardar el shape en las coordenadas UTM pero si abro el shape y lo solapo con la versión antigua, el tamaño está bien (el área de los polígonos varían un poco, cosa de decimales) pero me salen desplazado unos 100 metros… la verdad es que no sé cómo solucionar-lo no sé si hay unas variables de transformación específicas, tengo una imagen que conseguí de un cartográfico antiguo que marcan algunos datos para convertir de un sistema a otro…pero no sé cómo usar esta información.
    Pego aquí la imagen :

    Muchas gracias.

    • Eso es mucho. Algo pasó. Dame un sólo valor (un punto GPS) en coordenadas geográficas de tu zona para probarlo con Google Earth. Por otra parte, tu problema puede estar relacionado con el último párrafo de este post.

      Saludos

      Nota: Me debes la imagen🙂. Tienes que subirla a un sitio web específico y luego colocar en el comentario el link a la imagen. Así es como funciona.

      • arqva dijo:

        Hola José Guerrero,

        Gracias por su respuesta, es verdad lo más importante faltó, pensé que podía pegar la imagen directamente…pruebo de enviarte por este link.

        https://plus.google.com/u/0/photos/112951891367188102891/albums/5909858603469572657

        En la imagen verás que hay un factor de escala (scale factor at origin: .9996) que coincide bastante con la diferencia de áreas que comenté en el post, cuando medí las parcelas del archivo reproyectado y comparé con las medidas originales (archivo antiguo original en UTM)me salen todas con este factor de diferencia (0,99996 – quizás sea casualidad pero es “casi” igual) mi ilusión es que haya algún lugar que pueda añadir ese parámetro y cuadrar las áreas perfectamente.

        Muchas gracias,

  8. Tienes que transformar tus shapefiles de WGS84 (geográficas?) a UTM zona 16 NAD 27 (EPSG 2028).

    Produje un shapefile en la zona con Google Earth, lo transformé a NAD 27 UTM 16 y sus parámetros (abajo) coinciden con lo que tienes en la imagen.

    PROJCS["NAD27(76) / UTM zone 16N",GEOGCS["NAD27(76)",DATUM["D_NAD_1927_Definition_1976",
    SPHEROID["Clarke_1866",6378206.4,294.9786982138982]],PRIMEM["Greenwich",0],
    UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],
    PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
    
  9. Sebastian dijo:

    Hola, muchas gracias de antemano por tus entradas.

    Tengo una duda que no se como resolverla. Tengo un proyecto abierto en QGIS cuyo sistema de referencia de coordenadas es WGS84 dadas en grados decimales. De todas las capas que hay en el proyecto, hay una que cuando haces zum a su extensión aparece en otro lugar y sus coordenadas aparecen en millones aunque su sistema de referencia es el mismo que las demás capas y que la del proyecto. Es decir, si todas las capas del proyecto están dando alrededor de -70.1234 y -30.1234 dicha capa lo hace con 2400000 y 6200000.

    ¿Cómo puedo hacer para que se proyecte en decimales y así poderla ver junto al resto de capas?

    Muchas gracias por todo.

    • Aunque lo afirmes aparentemente no lo es. Abre la capa en solitario y usa la opción de “Guardar como” (usa otro nombre). Filtras el sistema de referencia por EPSG 4326 (WGS84 geográficas). Abre la capa con el nuevo sistema de referencia junto con las otras a ver si se resolvió el problema.

      • Sebastian dijo:

        Hola José,

        muchas gracias por tu rápida respuesta. He probado a hacer lo que me dices pero aun no consigo arreglarlo. He probado a borrar su archivo PRJ asociado pero lo sigue abriendo dando las coordenadas en millones.
        No se de dónde puede venir el problema. Me tiene desconcertado.

        Muchas gracias de nuevo.

      • Sebastian dijo:

        Hola, ya he conseguido hacer la reproyección correctamente del archivo/capa vectorial. Creo que el error era que desde el principio tenía mal asignado el sistema de proyección. Como bien decías aunque lo afirme, realmente no era el correcto. Lo habían guardado en WGS84 cuando en realidad era un POSGAR y proyectado. Una vez averiguado el sistema correcto estos son los pasos que he seguido para poderlo reproyectar:

        1 – Abrir en un proyecto nuevo solamente el archivo/capa que queremos reproyectar.
        2 – Una vez encontrado su sistema correcto de coordenadas se guarda “como” dándole otro nombre y asegurándose que el SRC es el correcto.
        3 – Abrir el proyecto a trabajar y cargar en él el archivo/capa anteriormente creado.
        4 – Activar la proyección al vuelo y comprobar que está bien situado en el mapa.
        5 – Guardar de nuevo el archivo/capa “como” con otro nombre diferente y marcar al guardar la nueva proyección que deseamos para ese archivo/capa en la pestaña “explorar-SRC”.
        6 – Añadimos el nuevo archivo/capa creado y ya está perfectamente reproyectado.
        7 – Desactivamos la proyección al vuelo.

        (Lo de guardar con otro nombre es por las dudas de pueda dar algún fallo pero en principio no es necesario).

        Espero que esto pueda servir a alguien en el futuro porque puedes llegar a frustrarte bastante. Es lo que tiene que te den archivos shp de hace tiempo y que no se acuerden ni en qué proyección están realmente.

        Muchas gracias por tu tiempo José.

        Saludos,
        Sebastián

  10. Pingback: Cómo reproyectar un shapefile en QGIS 1....

  11. Oscar dijo:

    les recomiendo mucho el Global Mapper para sus conversiones es muy versatil.

  12. Eugenia dijo:

    Hola Jose! queria saber como abrir Qgis bajo el EPSG 900913 (Mercator Google)? Muchas gracias!

    • Si mal no recuerdo haber leído ese código está “deprecated”. El ahora aceptado y totalmente equivalente es el ESPG: 3857 (WGS 84 / Pseudo Mercator). Ese es el que tienes que usar en los settings del Proyecto.

      • Eugenia dijo:

        Muchicimas gracias por responderme! pero ese codigo no me figura en el listado del programa, puedo agregarlo de forma manual?

      • Eugenia dijo:

        Jose! ahi pude localizarlo! de verdad muchas gracias por la ayuda! y ya que estamos te hago otra consultita: en un tutorial que nos dio el profesor nos dice que necesitamos habilitar el complemento “open layers plugin” pero dentro del menu en complementos no me figura, solo tengo 3 opciones dentro de “complementos”, sabes por que puede ser? Disculpa las molestias!

  13. Yo ya utilizo el 2.0.1 Dufour y lo estoy observando en Complementos -> Obtener más. Así que si estás usando todavía el 1.8 actualízate para tenerlo a tu disposición.

  14. tami dijo:

    Pucha, sabes que no me resulta =( tengo dos shapes :
    pero que calzan cuando le pongo una proyección distinta a cada una
    onda WGS 84 UTM 19 S y la otra WGS 84 UTM 18S
    ahora cuando quiero usarlas, ya sea recortarlas o algo así
    no me resulta =(

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s