def generateRegion(region): #fisrt lets see if the gemf is there print "generating data for " + region filter = Regions.getRegionFilterList(region) bo = BsbOutlines.BsbOutlines(Env.bsbDir, filter) xmlFname = region+".xml" xmlPath = Env.gemfDir+"/"+xmlFname zxmlPath = Env.gemfDir+"/"+region+".zxml" xml = XMLWriter(codecs.open(xmlPath, "w", "utf-8")) zxml = zipfile.ZipFile(zxmlPath, "w", zipfile.ZIP_DEFLATED) gemfFile = Env.gemfDir+region+".gemf" xml.start("rml", version='1.0') xml.start("region", description=Regions.getRegionDescription(region), bytes = str(os.path.getsize(gemfFile))) for kapfile in bo.getkeys(): xml.start("chart", file=kapfile, name=bo.getname(kapfile), scale=str(bo.getscale(kapfile)), depths=bo.getdepthunits(kapfile), zoom=str(bo.getzoom(kapfile))); xml.data(bo.getoutline(kapfile)) xml.end("chart") xml.end("region") xml.end("rml") xml.close(1) cmd = "tidy -xml -imq " + xmlPath os.popen(cmd) zxml.write(xmlPath, xmlFname) os.remove(xmlPath) zxml.close()
def generateRegion(region): #fisrt lets see if the gemf is there print "generating data for " + region filter = Regions.getRegionFilterList(region) bo = BsbOutlines.BsbOutlines(Env.bsbDir, filter) # bsbScales = BsbScales(Env.bsbDir, filter) # sortList = bsbScales.getKapsSortedByScale() # sortList.reverse() # mergeorder = "" # for item in sortList: # mergeorder += item + ":" # mergeorder.rstrip(":") sqlFname = region+".sql" sqlPath = Env.gemfDir+"/"+sqlFname zdatPath = Env.gemfDir+"/"+region+".zdat" sqlf = codecs.open(sqlPath, "w", "utf-8") zdat = zipfile.ZipFile(zdatPath, "w", zipfile.ZIP_DEFLATED) #sqlf = open(Env.gemfDir+"/"+region+".bin", "wb") wrt = u"--MXMARINER-DBVERSION:3\n" #zdat.writestr( sqlFname, wrt) sqlf.write( wrt ) if (custom): gemfFile = Env.gemfDir+region+".gemf" if not os.path.isfile(gemfFile): print "gemf not ready:" + region sys.exit() else: bytes = os.path.getsize(gemfFile) wrt = strcustom0 %(region) sqlf.write( wrt ) #zdat.writestr( sqlFname, wrt) #[name], [description], [image], [size], [installeddate] wrt = strcustom1 %(region, Regions.getRegionDescription(region), region.lower().replace("_", ""), bytes, epoch) sqlf.write( wrt ) #zdat.writestr( sqlFname, wrt) else: #wrt = str0 %(epoch, mergeorder, region) wrt = str0 %(epoch, region) sqlf.write( wrt ) #zdat.writestr( sqlFname, wrt) wrt = str1 %(region) sqlf.write( wrt ) #zdat.writestr( sqlFname, wrt) for kapfile in bo.getkeys(): wrt = str2 %(region, kapfile, bo.getname(kapfile), bo.getupdated(kapfile), bo.getscale(kapfile), \ bo.getoutline(kapfile), bo.getdepthunits(kapfile), bo.getzoom(kapfile)); sqlf.write( wrt ) #zdat.writestr( sqlFname, wrt) sqlf.close() zdat.write(sqlPath, sqlFname) os.remove(sqlPath) zdat.close()