6 votos

¿Cómo convertir los datos del mapa factfinder2.census.gov a KML?

Descargué un mapa desde http://factfinder2.census.gov/faces/tableservices/jsf/pages/productview.xhtml?pid=DEC_10_SF1_P1 (limitado a las zonas censales de San Francisco), y me gustaría convertirlo a formato KML. Sin embargo, después de descomprimir el archivo .zip del shapefile y ejecutar

$ ogr2ogr -f KML pop_by_census_tract.kml 140_00.shp

Recibo el siguiente mensaje de error:

ERROR 6: No se conoce ninguna traducción de Mercator_Auxiliary_Sphere al formato PROJ.4.
Advertencia 1: No se pudo crear una transformación de coordenadas entre
el sistema de coordenadas de entrada y WGS84. Esto puede ser debido a que
no son transformables o porque los servicios de proyección
(PROJ.4 DLL/.so) no se pudieron cargar.
Las geometrías KML pueden no renderizarse correctamente.
Este mensaje no se emitirá más. 

Fuente:
PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",
    GEOGCS["GCS_WGS_1984",
        DATUM["WGS_1984",
            SPHEROID["WGS_1984",6378137.0,298.257223563]],
        PRIMEM["Greenwich",0.0],
        UNIT["Degree",0.0174532925199433]],
    PROJECTION["Mercator_Auxiliary_Sphere"],
    PARAMETER["False_Easting",0.0],
    PARAMETER["False_Northing",0.0],
    PARAMETER["Central_Meridian",0.0],
    PARAMETER["Standard_Parallel_1",0.0],
    PARAMETER["Auxiliary_Sphere_Tipo",0.0],
    UNIT["Meter",1.0]]

ERROR 1: La latitud 4553026.920500 no es válida. El rango válido es [-90,90]. Esta advertencia no se emitirá más
Advertencia 1: La longitud -13627851.842700 ha sido modificada para ajustarse al rango [-180,180]. Esta advertencia no se emitirá más

Cuando abro el archivo KML resultante en Google Earth, obtengo líneas dispersas al azar en todo el planeta. El ejemplo en code.google.com/apis/kml/articles/vector.html funciona bien, por lo que la instalación de GDAL (1.8.0 de macports) no está completamente rota.

http://trac.osgeo.org/gdal/ticket/3962 parece estar relacionado, pero no estoy seguro si está diciendo que Mercator_Auxiliary_Sphere simplemente no es compatible con GDAL, o si está insinuando que debería pasar otra opción de línea de comandos para que funcione.


Logré mi objetivo descargando http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_06_140_00_500k.zip, que contiene shapefiles que ogr2ogr y shp2pgsql pueden entender, y uniéndolo con los datos de tabla pura de factfinder2. Todavía tengo curiosidad sobre el formato que está utilizando factfinder2, pero ya no está bloqueando mi progreso.

2voto

petrichor Puntos 740
$ ogr2ogr -f KML -s_srs EPSG:3857 -t_srs EPSG:3857 pop_by_census_tract.kml 140_00.shp

crea un archivo KML con los límites en los lugares correctos. Necesita ambas de esas opciones. Solo -s_srs EPSG:3857 produce el mismo error que en la pregunta inicial, mientras que -t_srs produce uno como

ERROR 6: No se conoce traducción para Mercator_Auxiliary_Sphere al formato PROJ.4.
Error al crear la transformación de coordenadas entre los siguientes sistemas de coordenadas. Esto puede ser porque no son transformables, o porque los servicios de proyección (DLL/.so de PROJ.4) no pudieron cargarse.
Fuente:
PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",
    ... # Igual que 140_00.prj
Objetivo:
PROJCS["WGS 84 / Pseudo-Mercator",
    ... # Igual que en el ticket de gdal

0voto

sherbang Puntos 2675

Intenta subir el shapefile a Google Fusion Tables. Eso te permitirá descargar los datos como KML: http://shpescape.com/

0voto

Adam Ernst Puntos 6939

Puedes intentar cargar el shapefile en GeoServer y hacer una solicitud WMS con formato de salida KML.

0voto

pat Puntos 86

Si a->b no funciona, prueba a->c->b.

Web Mercator puede que no tenga una coincidencia en proj.4. Entonces, si pudieras encontrar el equivalente de Web Mercator en proj.4, eso podría ser tu traducción de a->c. ¿Quizás ESPG 3857? También puede que necesites eliminar la proyección existente y luego agregar una transformable en su lugar.

Haciéndolo en R, parece que hice lo siguiente:

P4S.latlon <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84") 
#definí un datum cuando lo leí.  
tl_2010_04_tabblock00 <- readShapePoly("tl_2010_04_tabblock00", verbose=TRUE, proj4string=P4S.latlon)

Esto también podría ser útil.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X