2010-11-16 16:24:52 +03:00
#!/usr/bin/php -Cq
< ? php
2016-09-04 04:19:48 +03:00
require_once ( dirname ( dirname ( __FILE__ )) . '/settings/settings.php' );
require_once ( CONST_BasePath . '/lib/init-cmd.php' );
ini_set ( 'memory_limit' , '800M' );
$aCMDOptions = array (
" Create and setup nominatim search system " ,
array ( 'help' , 'h' , 0 , 1 , 0 , 0 , false , 'Show Help' ),
array ( 'quiet' , 'q' , 0 , 1 , 0 , 0 , 'bool' , 'Quiet output' ),
array ( 'verbose' , 'v' , 0 , 1 , 0 , 0 , 'bool' , 'Verbose output' ),
array ( 'parse-tiger' , '' , 0 , 1 , 1 , 1 , 'realpath' , 'Convert tiger edge files to nominatim sql import - datafiles from 2011 or later (source: edges directory of tiger data)' ),
);
getCmdOpt ( $_SERVER [ 'argv' ], $aCMDOptions , $aCMDResult , true , true );
2016-09-08 04:16:22 +03:00
if ( isset ( $aCMDResult [ 'parse-tiger' ])) {
2016-09-04 04:19:48 +03:00
if ( ! file_exists ( CONST_Tiger_Data_Path )) mkdir ( CONST_Tiger_Data_Path );
$sTempDir = tempnam ( '/tmp' , 'tiger' );
unlink ( $sTempDir );
mkdir ( $sTempDir );
2016-09-08 04:16:22 +03:00
foreach ( glob ( $aCMDResult [ 'parse-tiger' ] . '/tl_20??_?????_edges.zip' , 0 ) as $sImportFile ) {
2016-09-04 04:19:48 +03:00
set_time_limit ( 30 );
preg_match ( '#([0-9]{5})_(.*)#' , basename ( $sImportFile ), $aMatch );
$sCountyID = $aMatch [ 1 ];
echo " Processing " . $sCountyID . " ... \n " ;
$sUnzipCmd = " unzip -d $sTempDir $sImportFile " ;
exec ( $sUnzipCmd );
$sShapeFile = $sTempDir . '/' . basename ( $sImportFile , '.zip' ) . '.shp' ;
2016-09-08 04:16:22 +03:00
if ( ! file_exists ( $sShapeFile )) {
2016-09-04 04:19:48 +03:00
echo " Failed unzip ( $sImportFile ) \n " ;
2016-09-08 04:16:22 +03:00
} else {
2016-09-04 04:19:48 +03:00
$sParseCmd = CONST_BasePath . '/utils/tigerAddressImport.py ' . $sShapeFile ;
exec ( $sParseCmd );
$sOsmFile = $sTempDir . '/' . basename ( $sImportFile , '.zip' ) . '.osm1.osm' ;
2016-09-08 04:16:22 +03:00
if ( ! file_exists ( $sOsmFile )) {
2016-09-04 04:19:48 +03:00
echo " Failed parse ( $sImportFile ) \n " ;
2016-09-08 04:16:22 +03:00
} else {
2016-09-04 04:19:48 +03:00
copy ( $sOsmFile , CONST_Tiger_Data_Path . '/' . $sCountyID . '.sql' );
}
}
// Cleanup
2016-09-08 04:16:22 +03:00
foreach ( glob ( $sTempDir . '/*' ) as $sTmpFile ) {
2016-09-04 04:19:48 +03:00
unlink ( $sTmpFile );
}
}
}