]> git.openstreetmap.org Git - nominatim.git/blobdiff - utils/imports.php
handle spikes in load more gracefully
[nominatim.git] / utils / imports.php
index 7e9de8e4a33251288277f940bb33ddfd1afe3530..752121d76dd7f5a5ddb950aaddfc81ea4b75c58a 100755 (executable)
@@ -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('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 (source: edges directory of tiger data)'),
        );
        getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
 
        );
        getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
 
 
        if (isset($aCMDResult['parse-tiger']))
        {
 
        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);
                $sTempDir = tempnam('/tmp', 'tiger');
                unlink($sTempDir);
                mkdir($sTempDir);
                {
                        foreach(glob($sStateFolder.'/?????_*', GLOB_ONLYDIR) as $sCountyFolder)
                        {
                {
                        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';
                                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";
                                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_2011_?????_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);
+                       }
+
+               }
+       }