[Spanish] Re: Catastro + Python

Luis Franco Vázquez luis at piezas.org.es
Wed Jul 13 11:56:45 EDT 2011


Hola Jorge:

yo estaba haciendo lo mismo con PHP.
Prueba este script y me cuentas (ejecútalo si quieres desde consola con php
nombre_script.php).
Cambia la ruta del directorio y ya se encarga él de buscar todos los zip y
de extraerlos en el mismo sitio.

Ya me dirás.
Un saludo
<?php

/**
 * Librería que extiende  el FilterIterator del SPL de PHP
 * para filtrar sólo los archivos de un tipo
 *
 */
class FiltroDirectorio extends FilterIterator
{
    private $_tipo;

    /**
     * Constructor
     *
     * @access public
     * @return void
     */
    public function __construct($path,$tipo)
    {
        parent::__construct(new DirectoryIterator($path));
        $this->_tipo = '.' . strtolower($tipo);
    }

    /**
     * Comprueba si durante una iteración se cumplen las condiciones
     *
     * @access public
     * @return Boolean $aceptable
     */
    public function accept()
    {
        $aceptable = FALSE;
        $iteradorDirectorio = $this->getInnerIterator();
        $aceptable = $iteradorDirectorio->isFile();
        if ($aceptable)
        {
            $aceptable = (bool)
substr_count(strtolower($iteradorDirectorio->getFilename()), $this->_tipo);
        }
        return $aceptable;
    }

}

$rutaDirZip =
'/home/usuario/Escritorio/catastro/muestras/urbana_sin_historia/';
$dir = new FiltroDirectorio($rutaDirZip,'zip');
foreach ($dir as $archivoZip)
{
    $zip = new ZipArchive;
    if ($zip->open($archivoZip->getPathname()) === TRUE) {
        $zip->extractTo($rutaDirZip);
        $zip->close();
        echo 'Extrayendo '.$archivoZip->getPathname().PHP_EOL;
        echo 'Borrando '.$archivoZip->getPathname().PHP_EOL;
        unlink($archivoZip->getPathname());

    } else {
        echo 'Fallo extracción: '.$archivoZip->getPathname().PHP_EOL;
    }
}
?>
El 13 de julio de 2011 17:31, Jorge Arévalo
<jorge.arevalo at deimos-space.com>escribió:

> Lo olvidaba. Es Python 2.7. Pasa igual con 2.6
>
> 2011/7/13 Jorge Arévalo <jorge.arevalo at deimos-space.com>:
> > Buenas,
> >
> > Estoy procesando datos catastrales con Python, y me estoy encontrando
> > con un problema bastante molesto. Os cuento lo que hago:
> >
> > 1.- Con certificado digital, me bajo unos shapefiles de prueba del
> > servicio de descarga masiva de datos catastrales
> > (https://www.sedecatastro.gob.es/OVCFrames.aspx?TIPO=TIT&a=masiv).
> > Elijo la opción "rústica con historia". Me baja un fichero zip
> >
> > 2.- Con Python, descomprimo ese fichero zip. Dentro tiene más ficheros
> > zip (PARCELA.zip, SUBPARCE.zip, etc).
> >
> > 3.- Intento descomprimir cada uno de los ficheros por separado, y con
> > todos ellos Python me da una excepción "BadZipFile: File is not a zip
> > file". Llamando al método "is_zipfile"
> > (http://docs.python.org/library/zipfile.html), efectivamente, me
> > devuelve FALSE. He estado buscando por Internet gente que ha tenido un
> > problema similar, pero no he encontrado ninguna respuesta
> > satisfactoria todavía. En StackOverflow hay un par de hilos sin
> > respuesta sobre el tema. Por lo que he podido sacar, será que los
> > ficheros no están en el formato PKZIP. 7-zip me los abre sin
> > problemas, y el unzip de Ubuntu lo mismo.
> >
> > Hasta donde yo creía saber, el algoritmo PKZIP era el implementado
> > para la compresión ZIP, y pensé que cualquier librería que soportara
> > archivos zip no tendría problemas con dicho formato, pero se ve que
> > no.
> >
> > ¿Alguien tiene experiencia con los ficheros del catastro?, ¿o con este
> > tipo de problema en ficheros zip?
> >
> > Gracias por anticipado, y saludos,
> >
> > --
> > Jorge Arévalo
> > Internet & Mobility Division, DEIMOS
> > jorge.arevalo at deimos-space.com
> > http://es.linkedin.com/in/jorgearevalo80
> > http://mobility.grupodeimos.com/
> > http://gis4free.wordpress.com
> > http://geohash.org/ezjqgrgzz0g
> >
>
>
>
> --
> Jorge Arévalo
> Internet & Mobility Division, DEIMOS
> jorge.arevalo at deimos-space.com
> http://es.linkedin.com/in/jorgearevalo80
> http://mobility.grupodeimos.com/
> http://gis4free.wordpress.com
> http://geohash.org/ezjqgrgzz0g
> _______________________________________________
> Spanish mailing list
> http://lists.osgeo.org/mailman/listinfo/spanish
> http://es.osgeo.org
> http://twitter.com/osgeoes
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/spanish/attachments/20110713/4b8ce281/attachment-0001.html


More information about the Spanish mailing list