[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