mirror of
https://github.com/oDinZu/natural-earth-vector.git
synced 2025-02-22 00:04:57 -05:00
stub zips, including python and Makefile
This commit is contained in:
parent
55c1bca6f2
commit
493dca349c
11
zips/Makefile
Normal file
11
zips/Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
python zip_dir_of_shps.py -i "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5/10m_cultural" -o "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5_zips"
|
||||
|
||||
python zip_dir_of_shps.py -i "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5/10m_physical" -o "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5_zips"
|
||||
|
||||
python zip_dir_of_shps.py -i "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5/50m_cultural" -o "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5_zips"
|
||||
|
||||
python zip_dir_of_shps.py -i "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5/50m_physical" -o "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5_zips"
|
||||
|
||||
python zip_dir_of_shps.py -i "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5/110m_cultural" -o "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5_zips"
|
||||
|
||||
python zip_dir_of_shps.py -i "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5/110m_physical" -o "/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d5_zips"
|
1
zips/README.md
Normal file
1
zips/README.md
Normal file
@ -0,0 +1 @@
|
||||
Scripts to build Natural Earth ZIP archives and copy them to the servers.
|
89
zips/zip_dir_of_shps.py
Normal file
89
zips/zip_dir_of_shps.py
Normal file
@ -0,0 +1,89 @@
|
||||
import zipfile, sys, os, glob
|
||||
from optparse import OptionParser
|
||||
|
||||
optparser = OptionParser(usage="""%prog [options]
|
||||
|
||||
Zips up shapefile file groups (.shp, .dbf, .shx, .prj, etc) into single files.
|
||||
|
||||
For use preparing new releases of Natural Earth.""")
|
||||
|
||||
optparser.add_option('-i', '--in_dir', dest='in_dir',
|
||||
help='Input directory of shapefiles.')
|
||||
|
||||
optparser.add_option('-o', '--out_dir', dest='out_dir',
|
||||
help='Output directory for resulting ZIP files.')
|
||||
|
||||
|
||||
def zipShapefilesInDir(inDir, outDir):
|
||||
# Check that input directory exists
|
||||
if not os.path.exists(inDir):
|
||||
print "Input directory %s does not exist!" % inDir
|
||||
return False
|
||||
|
||||
# Check that output directory exists
|
||||
if not os.path.exists(outDir):
|
||||
# Create it if it does not
|
||||
print "Creating output directory %s" %outDir
|
||||
os.mkdir(outDir)
|
||||
|
||||
print "Zipping shapefile(s) in folder %s to output folder %s" % (inDir, outDir)
|
||||
|
||||
# Loop through shapefiles in input directory
|
||||
for inShp in glob.glob(os.path.join(inDir, "*.shp")):
|
||||
# Build the filename of the output zip file
|
||||
outZip = os.path.join(outDir, os.path.splitext(os.path.basename(inShp))[0] + ".zip")
|
||||
|
||||
# Zip the shapefile
|
||||
zipShapefile(inShp, outZip)
|
||||
return True
|
||||
|
||||
def zipShapefile(inShapefile, newZipFN):
|
||||
print 'Starting to Zip '+(inShapefile)+' to '+(newZipFN)
|
||||
|
||||
# Check that input shapefile exists
|
||||
if not (os.path.exists(inShapefile)):
|
||||
print inShapefile + ' Does Not Exist'
|
||||
return False
|
||||
|
||||
# Delete output zipfile if it already exists
|
||||
if (os.path.exists(newZipFN)):
|
||||
print 'Deleting '+newZipFN
|
||||
os.remove(newZipFN)
|
||||
|
||||
# Output zipfile still exists, exit
|
||||
if (os.path.exists(newZipFN)):
|
||||
print 'Unable to Delete'+newZipFN
|
||||
return False
|
||||
|
||||
# Open zip file object
|
||||
zipobj = zipfile.ZipFile(newZipFN,'w')
|
||||
|
||||
# Loop through shapefile components
|
||||
for infile in glob.glob( inShapefile.lower().replace(".shp",".*")):
|
||||
# Skip .zip file extension
|
||||
if os.path.splitext(infile)[1].lower() != ".zip":
|
||||
print "Zipping %s" % (infile)
|
||||
# Zip the shapefile component
|
||||
zipobj.write(infile,os.path.basename(infile),zipfile.ZIP_DEFLATED)
|
||||
|
||||
# Close the zip file object
|
||||
zipobj.close()
|
||||
return True
|
||||
|
||||
# Main method, used when this script is the calling module, otherwise
|
||||
# you can import this module and call your functions from other modules
|
||||
if __name__=="__main__":
|
||||
|
||||
(options, args) = optparser.parse_args()
|
||||
|
||||
## testShapeFile = r"C:\temp\geomTest.shp"
|
||||
## testZipFile = r"C:\temp\geomTest.zip"
|
||||
## zipShapefile(testShapeFile,testZipFile)
|
||||
#inDir = r"/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d4/10m_cultural"
|
||||
#outDir = r"/Volumes/Data/NaturalEarth/updates/natural_earth_update_1d4_zips"
|
||||
|
||||
inDir = options.in_dir
|
||||
outDir = options.out_dir
|
||||
|
||||
zipShapefilesInDir(inDir, outDir)
|
||||
print "done!"
|
Loading…
x
Reference in New Issue
Block a user