]> git.openstreetmap.org Git - nominatim.git/blob - utils/imports.php
939f270690ab939d30b5d864c79501099b0ee463
[nominatim.git] / utils / imports.php
1 #!/usr/bin/php -Cq
2 <?php
3
4 require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
5 require_once(CONST_BasePath.'/lib/init-cmd.php');
6 ini_set('memory_limit', '800M');
7
8 $aCMDOptions
9  = array(
10     "Create and setup nominatim search system",
11     array('help', 'h', 0, 1, 0, 0, false, 'Show Help'),
12     array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'),
13     array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
14
15     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)'),
16    );
17 getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
18
19
20 if (isset($aCMDResult['parse-tiger'])) {
21     if (!file_exists(CONST_Tiger_Data_Path)) mkdir(CONST_Tiger_Data_Path);
22
23     $sTempDir = tempnam('/tmp', 'tiger');
24     unlink($sTempDir);
25     mkdir($sTempDir);
26
27     foreach (glob($aCMDResult['parse-tiger'].'/tl_20??_?????_edges.zip', 0) as $sImportFile) {
28         set_time_limit(30);
29         preg_match('#([0-9]{5})_(.*)#', basename($sImportFile), $aMatch);
30         $sCountyID = $aMatch[1];
31
32         echo "Processing ".$sCountyID."...\n";
33         $sUnzipCmd = "unzip -d $sTempDir $sImportFile";
34         exec($sUnzipCmd);
35
36         $sShapeFilename = $sTempDir.'/'.basename($sImportFile, '.zip').'.shp';
37         $sSqlFilename = CONST_Tiger_Data_Path.'/'.$sCountyID.'.sql')
38
39         if (!file_exists($sShapeFilename)) {
40             echo "Failed unzip ($sImportFile)\n";
41         } else {
42             $sParseCmd = CONST_BasePath.'/utils/tigerAddressImport.py '.$sShapeFilename.' '.$sSqlFilename;
43             exec($sParseCmd);
44             if (!file_exists($sOsmFile)) {
45                 echo "Failed parse ($sImportFile)\n";
46                 if file_exists($sSqlFilename) unlink($sSqlFilename);
47             }
48         }
49         // Cleanup
50         foreach (glob($sTempDir.'/*') as $sTmpFile) {
51             unlink($sTmpFile);
52         }
53     }
54 }