X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/1663dd49a4cd91ca529357aa6608b8c0cde8ce23..357a99c0ef86cd4d3276c7dd215b58f78640515a:/utils/imports.php?ds=inline diff --git a/utils/imports.php b/utils/imports.php index 7e9de8e4..6450b3f1 100755 --- a/utils/imports.php +++ b/utils/imports.php @@ -10,7 +10,8 @@ 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 tigger edge files to nominatim sql import'), + array('parse-tiger', '', 0, 1, 1, 1, 'realpath', 'Convert tiger edge files to nominatim sql import'), + array('parse-tiger-2011', '', 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); @@ -18,6 +19,28 @@ if (isset($aCMDResult['parse-tiger'])) { + $bDidSomething = true; + foreach(glob($aCMDResult['parse-tiger'].'/??_*', GLOB_ONLYDIR) as $sStateFolder) + { + preg_match('#([0-9]{2})_(.*)#',basename($sStateFolder), $aMatch); + var_dump($aMatch); + exit; + foreach(glob($sStateFolder.'/?????_*', GLOB_ONLYDIR) as $sCountyFolder) + { + set_time_limit(30); + preg_match('#([0-9]{5})_(.*)#',basename($sCountyFolder), $aMatch); + $sCountyID = $aMatch[1]; + $sCountyName = str_replace('_', ' ', $aMatch[2]); + $sImportFile = $sCountyFolder.'/tl_2009_'.$sCountyID.'_edges.zip'; + $sCountyName = str_replace("'", "''", $sCountyName); + $sCountyName = str_replace(" County", "", $sCountyName); + echo "'$sCountyID' : '$sCountyName' ,\n"; + } + } + exit; + + if (!file_exists(CONST_BasePath.'/data/tiger2009')) mkdir(CONST_BasePath.'/data/tiger2009'); + $sTempDir = tempnam('/tmp', 'tiger'); unlink($sTempDir); mkdir($sTempDir); @@ -26,18 +49,87 @@ { foreach(glob($sStateFolder.'/?????_*', GLOB_ONLYDIR) as $sCountyFolder) { + set_time_limit(30); preg_match('#([0-9]{5})_(.*)#',basename($sCountyFolder), $aMatch); $sCountyID = $aMatch[1]; $sCountyName = str_replace('_', ' ', $aMatch[2]); $sImportFile = $sCountyFolder.'/tl_2009_'.$sCountyID.'_edges.zip'; + echo "$sCountyID, $sCountyName\n"; if (!file_exists($sImportFile)) { echo "Missing: $sImportFile\n"; } $sUnzipCmd = "unzip -d $sTempDir $sImportFile"; -var_dump($sUnzipCmd); -exit; -// exec($sUnzipCmd); + exec($sUnzipCmd); + if (!file_exists($sTempDir.'/tl_2009_'.$sCountyID.'_edges.shp')) + { + echo "Failed unzip ($sCountyID)\n"; + } + else + { + $sParseCmd = CONST_BasePath.'/utils/tigerAddressImport.py '.$sTempDir.'/tl_2009_'.$sCountyID.'_edges.shp'; + exec($sParseCmd); + if (!file_exists($sTempDir.'/tl_2009_'.$sCountyID.'_edges.osm1.osm')) + { + echo "Failed parse ($sCountyID)\n"; + } + else + { + copy($sTempDir.'/tl_2009_'.$sCountyID.'_edges.osm1.osm', CONST_BasePath.'/data/tiger2009/'.$sCountyID.'.sql'); + } + } + // Cleanup + foreach(glob($sTempDir.'/*') as $sTmpFile) + { + unlink($sTmpFile); + } } } } + + + if (isset($aCMDResult['parse-tiger-2011'])) + { + if (!file_exists(CONST_BasePath.'/data/tiger2011')) mkdir(CONST_BasePath.'/data/tiger2011'); + + $sTempDir = tempnam('/tmp', 'tiger'); + unlink($sTempDir); + mkdir($sTempDir); + + + $bDidSomething = true; + foreach(glob($aCMDResult['parse-tiger-2011'].'/tl_20??_?????_edges.zip', 0) as $sImportFile) + { + 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'; + if (!file_exists($sShapeFile)) + { + echo "Failed unzip ($sImportFile)\n"; + } + else + { + $sParseCmd = CONST_BasePath.'/utils/tigerAddressImport.py '.$sShapeFile; + exec($sParseCmd); + $sOsmFile = $sTempDir.'/'.basename($sImportFile, '.zip').'.osm1.osm'; + if (!file_exists($sOsmFile)) + { + echo "Failed parse ($sImportFile)\n"; + } + else + { + copy($sOsmFile, CONST_BasePath.'/data/tiger2011/'.$sCountyID.'.sql'); + } + } + // Cleanup + foreach(glob($sTempDir.'/*') as $sTmpFile) + { + unlink($sTmpFile); + } + + } + }