]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/imports.php
Merge pull request #1186 from mtmail/getAddressDetails-fix
[nominatim.git] / utils / imports.php
index 112ebd890a9c5f16ee82e04ca2ce6e73002794c8..9d1085f041e78ed5953c0ee6abc050f0273cf1e1 100755 (executable)
@@ -1,86 +1,56 @@
-#!/usr/bin/php -Cq
+#!@PHP_BIN@ -Cq
 <?php
 
-       require_once(dirname(dirname(__FILE__)).'/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 tigger edge files to nominatim sql import'),
-       );
-       getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-
-       $bDidSomething = false;
-
-       if (isset($aCMDResult['parse-tiger']))
-       {
-               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);
-
-               foreach(glob($aCMDResult['parse-tiger'].'/??_*', GLOB_ONLYDIR) as $sStateFolder)
-               {
-                       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";
-                               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);
-                               }
-                       }
-               }
-       }
+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);
+
+
+if (isset($aCMDResult['parse-tiger'])) {
+    if (!file_exists(CONST_Tiger_Data_Path)) mkdir(CONST_Tiger_Data_Path);
+
+    $sTempDir = tempnam('/tmp', 'tiger');
+    unlink($sTempDir);
+    mkdir($sTempDir);
+
+    foreach (glob($aCMDResult['parse-tiger'].'/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);
+
+        $sShapeFilename = $sTempDir.'/'.basename($sImportFile, '.zip').'.shp';
+        $sSqlFilenameTmp = $sTempDir.'/'.$sCountyID.'.sql';
+        $sSqlFilename = CONST_Tiger_Data_Path.'/'.$sCountyID.'.sql';
+
+        if (!file_exists($sShapeFilename)) {
+            echo "Failed unzip ($sImportFile)\n";
+        } else {
+            $sParseCmd = CONST_BasePath.'/utils/tigerAddressImport.py '.$sShapeFilename.' '.$sSqlFilenameTmp;
+            exec($sParseCmd);
+            if (!file_exists($sSqlFilenameTmp)) {
+                echo "Failed parse ($sImportFile)\n";
+            } else {
+                copy($sSqlFilenameTmp, $sSqlFilename);
+            }
+        }
+        // Cleanup
+        foreach (glob($sTempDir.'/*') as $sTmpFile) {
+            unlink($sTmpFile);
+        }
+    }
+}