예제 #1
0
    def MakeXML(self,filpath):
        # root = Element("GRM")
        # layers = GRM_Plugin._iface.legendInterface().layers()
        # for layer in layers:
        #     layerpath=_util.GetLayerPath(layer.name())
        #     SubElement(root, "data", LayerName=layer.name()).text = layerpath
        # ElementTree(root).write(filpath, "utf-8")

        # 2017/06/19 XML 생성 부분 수정
        Employees = Element("Employees")
        layers = GRM_Plugin._iface.legendInterface().layers()
        for layer in layers:
            layerpath=_util.GetLayerPath(layer.name())
            Employee = Element('Employee', LayerName=layer.name())
            LayerPath = Element('LayerPath')
            LayerPath.text = layerpath
            Employee.append(LayerPath)
            Employees.append(Employee)
        ElementTree(Employees).write(filpath, "utf-8")
예제 #2
0
    def Check_Gmp_xml(self, filepath):
        self.ProjectFile = filepath
        # xml 요소 값을 배열에 넣음
        self.Set_XML_element()
        self.Set_XML_element_SubWatershed()
        self.Set_XML_element_WatchPoints()
        self.Set_XML_element_FlowControlGrid()
        self.Set_XML_element_GreenAmptParameter()
        self.Set_XML_element_SoilDepth()
        self.Set_XML_element_LandCover()

        # xml 파싱
        doc = ET.parse(self.ProjectFile)
        root = doc.getroot()

        GRMProject = ET.Element("GRMProject")
        GRMProject.set("xmlns", "http://tempuri.org/GRMProject.xsd")

        ProjectSettings = ET.SubElement(GRMProject, "ProjectSettings")
        for i in range(0, len(self.XML_element)):
            for element in root.findall(
                    '{http://tempuri.org/GRMProject.xsd}ProjectSettings'):
                Datavalue = element.findtext(
                    "{http://tempuri.org/GRMProject.xsd}" +
                    self.XML_element[i])
                if self.XML_element[i] == "GRMSimulationType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "SingleEvent"
                if self.XML_element[i] == "LandCoverDataType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "File"
                if self.XML_element[i] == "SoilTextureDataType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "File"
                if self.XML_element[i] == "SoilDepthDataType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "File"
                if self.XML_element[i] == "RainfallDataType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "TextFileASCgrid"
                if self.XML_element[i] == "FlowDirectionType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "StartsFromE_TauDEM"
                if self.XML_element[i] == "IsParallel" and (Datavalue == "" or
                                                            Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "MaxDegreeOfParallelism" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "-1"
                if self.XML_element[i] == "SimulStartingTime" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "0"
                if self.XML_element[i] == "IsFixedTimeStep" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "false"
                if self.XML_element[i] == "'SimulateInfiltration'" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "SimulateSubsurfaceFlow" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "SimulateBaseFlow" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "SimulateFlowControl" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "CrossSectionType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "CSSingle"
                if self.XML_element[i] == "SingleCSChannelWidthType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "CWGemeration"
                if self.XML_element[i] == "BankSideSlopeRight" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "1.5"
                if self.XML_element[i] == "BankSideSlopeLeft" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "1.5"
                if self.XML_element[i] == "MakeIMGFile" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "false"
                if self.XML_element[i] == "MakeASCFile" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "false"
                if self.XML_element[i] == "MakeSoilSaturationDistFile" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "MakeRfDistFile" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "MakeRFaccDistFile" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "MakeFlowDistFile" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "true"
                if self.XML_element[i] == "PrintOption" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "All"
                if self.XML_element[i] == "WriteLog" and (Datavalue == "" or
                                                          Datavalue == None):
                    Datavalue = "false"
            ET.SubElement(ProjectSettings,
                          self.XML_element[i]).text = Datavalue

        GRM._SubWatershedCount = 0
        for element in root.findall(
                '{http://tempuri.org/GRMProject.xsd}SubWatershedSettings'):
            SubWatershedSettings = ET.SubElement(GRMProject,
                                                 "SubWatershedSettings")
            for i in range(0, len(self.XML_element_SubWatershed)):
                Datavalue = element.findtext(
                    "{http://tempuri.org/GRMProject.xsd}" +
                    self.XML_element_SubWatershed[i])
                if self.XML_element_SubWatershed[i] == "IniSaturation" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "1"
                elif self.XML_element_SubWatershed[i] == "MinSlopeOF" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "0.0001"
                elif self.XML_element_SubWatershed[i] == "MinSlopeChBed" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "0.0001"
                elif self.XML_element_SubWatershed[i] == "MinChBaseWidth" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "00"
                elif self.XML_element_SubWatershed[i] == "ChRoughness" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "0.045"
                elif self.XML_element_SubWatershed[i] == "DryStreamOrder" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "0"
                elif self.XML_element_SubWatershed[i] == "IniFlow" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "0"
                elif self.XML_element_SubWatershed[
                        i] == "UnsaturatedKType" and (Datavalue == ""
                                                      or Datavalue == None):
                    Datavalue = "Linear"
                elif self.XML_element_SubWatershed[
                        i] == "CoefUnsaturatedK" and (Datavalue == ""
                                                      or Datavalue == None):
                    Datavalue = "0.2"
                elif self.XML_element_SubWatershed[
                        i] == "CalCoefLCRoughness" and (Datavalue == ""
                                                        or Datavalue == None):
                    Datavalue = "1"
                elif self.XML_element_SubWatershed[
                        i] == "CalCoefPorosity" and (Datavalue == ""
                                                     or Datavalue == None):
                    Datavalue = "1"
                elif self.XML_element_SubWatershed[
                        i] == "CalCoefWFSuctionHead" and (Datavalue == "" or
                                                          Datavalue == None):
                    Datavalue = "1"
                elif self.XML_element_SubWatershed[
                        i] == "CalCoefHydraulicK" and (Datavalue == ""
                                                       or Datavalue == None):
                    Datavalue = "1"
                elif self.XML_element_SubWatershed[
                        i] == "CalCoefSoilDepth" and (Datavalue == ""
                                                      or Datavalue == None):
                    Datavalue = "1"
                if self.XML_element_SubWatershed[i] == "UserSet" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = "false"
                ET.SubElement(
                    SubWatershedSettings,
                    self.XML_element_SubWatershed[i]).text = Datavalue
            GRM._SubWatershedCount = GRM._SubWatershedCount + 1
        GRM._WatchPointCount = 0
        for element in root.findall(
                '{http://tempuri.org/GRMProject.xsd}WatchPoints'):
            WatchPoints = ET.SubElement(GRMProject, "WatchPoints")
            for i in range(0, len(self.XML_element_WatchPoints)):
                Datavalue = element.findtext(
                    "{http://tempuri.org/GRMProject.xsd}" +
                    self.XML_element_WatchPoints[i])
                if self.XML_element_WatchPoints[i] == "Name" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_WatchPoints[i] == "ColX" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_WatchPoints[i] == "RowY" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                ET.SubElement(WatchPoints,
                              self.XML_element_WatchPoints[i]).text = Datavalue
            GRM._WatchPointCount = GRM._WatchPointCount + 1

        GRM._FlowControlCount = 0
        for element in root.findall(
                '{http://tempuri.org/GRMProject.xsd}FlowControlGrid'):
            FlowControlGrid = ET.SubElement(GRMProject, "FlowControlGrid")
            for i in range(0, len(self.XML_element_FlowControlGrid)):
                Datavalue = element.findtext(
                    "{http://tempuri.org/GRMProject.xsd}" +
                    self.XML_element_FlowControlGrid[i])
                if self.XML_element_FlowControlGrid[i] == "ColX" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "RowY" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "Name" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "ControlType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "DT" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "FlowDataFile" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "IniStorage" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "MaxStorage" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "MaxStorageR" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "ROType" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[i] == "ROConstQ" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_FlowControlGrid[
                        i] == "ROConstQDuration" and (Datavalue == ""
                                                      or Datavalue == None):
                    Datavalue = ""
                ET.SubElement(
                    FlowControlGrid,
                    self.XML_element_FlowControlGrid[i]).text = Datavalue
            GRM._FlowControlCount = GRM._FlowControlCount + 1

        GRM._GreenAmptCount = 0
        for element in root.findall(
                '{http://tempuri.org/GRMProject.xsd}GreenAmptParameter'):
            GreenAmptParameter = ET.SubElement(GRMProject,
                                               "GreenAmptParameter")
            for i in range(0, len(self.XML_element_GreenAmptParameter)):
                Datavalue = element.findtext(
                    "{http://tempuri.org/GRMProject.xsd}" +
                    self.XML_element_GreenAmptParameter[i])
                if self.XML_element_GreenAmptParameter[i] == "GridValue" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[i] == "USERSoil" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[i] == "GRMCode" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[
                        i] == "GRMTextureE" and (Datavalue == ""
                                                 or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[
                        i] == "GRMTextureK" and (Datavalue == ""
                                                 or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[i] == "Porosity" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[
                        i] == "EffectivePorosity" and (Datavalue == ""
                                                       or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[
                        i] == "WFSoilSuctionHead" and (Datavalue == ""
                                                       or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_GreenAmptParameter[
                        i] == "HydraulicConductivity" and (Datavalue == "" or
                                                           Datavalue == None):
                    Datavalue = ""
                ET.SubElement(
                    GreenAmptParameter,
                    self.XML_element_GreenAmptParameter[i]).text = Datavalue
            GRM._GreenAmptCount = GRM._GreenAmptCount + 1

        GRM._SoilDepthCount = 0
        for element in root.findall(
                '{http://tempuri.org/GRMProject.xsd}SoilDepth'):
            SoilDepth = ET.SubElement(GRMProject, "SoilDepth")
            for i in range(0, len(self.XML_element_SoilDepth)):
                if self.XML_element_SoilDepth[i] == "SoilDeptht":
                    Datavalue = element.findtext(
                        "{http://tempuri.org/GRMProject.xsd}SoilDepth")

                else:
                    Datavalue = element.findtext(
                        "{http://tempuri.org/GRMProject.xsd}" +
                        self.XML_element_SoilDepth[i])

                if self.XML_element_SoilDepth[i] == "GridValue" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_SoilDepth[i] == "UserDepthClass" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_SoilDepth[i] == "GRMCode" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_SoilDepth[i] == "SoilDepthClassE" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_SoilDepth[i] == "SoilDepthClassK" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_SoilDepth[i] == "SoilDeptht" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                ET.SubElement(SoilDepth,
                              self.XML_element_SoilDepth[i]).text = Datavalue
            GRM._SoilDepthCount = GRM._SoilDepthCount + 1

        GRM._LandCoverCount = 0
        for element in root.findall(
                '{http://tempuri.org/GRMProject.xsd}LandCover'):
            LandCover = ET.SubElement(GRMProject, "LandCover")
            for i in range(0, len(self.XML_element_LandCover)):
                Datavalue = element.findtext(
                    "{http://tempuri.org/GRMProject.xsd}" +
                    self.XML_element_LandCover[i])
                if self.XML_element_LandCover[i] == "GridValue" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_LandCover[i] == "UserLandCover" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_LandCover[i] == "GRMCode" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_LandCover[i] == "GRMLandCoverE" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_LandCover[i] == "GRMLandCoverK" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                if self.XML_element_LandCover[
                        i] == "RoughnessCoefficient" and (Datavalue == "" or
                                                          Datavalue == None):
                    Datavalue = ""
                if self.XML_element_LandCover[i] == "ImperviousRatio" and (
                        Datavalue == "" or Datavalue == None):
                    Datavalue = ""
                ET.SubElement(LandCover,
                              self.XML_element_LandCover[i]).text = Datavalue
            GRM._LandCoverCount = GRM._LandCoverCount + 1

        ET.ElementTree(GRMProject).write(self.ProjectFile,
                                         encoding="utf-8",
                                         xml_declaration=True)

        with open(self.ProjectFile, 'r') as f:
            content = f.read()
            result = content.replace("SoilDeptht", "SoilDepth")

        f = open(self.ProjectFile, 'w')
        f.write(result)
        f.close()

        ## 줄바꿈과 뛰어쓰기 부분
        #def indent(elem, level=0):
        #    i = "\n" + level * "  "
        #    j = "\n" + (level - 1) * "  "
        #    if len(elem):
        #        if not elem.text or not elem.text.strip():
        #            elem.text = i + "  "
        #        if not elem.tail or not elem.tail.strip():
        #            elem.tail = i
        #        for subelem in elem:
        #            indent(subelem, level + 1)
        #        if not elem.tail or not elem.tail.strip():
        #            elem.tail = i
        #    else:
        #        if level and (not elem.tail or not elem.tail.strip()):
        #            elem.tail = i
        #    return elem

        ## 저장된 파일 다시 불러와서 줄바꿈과 정렬 하기
        #doc = ET.parse(self.ProjectFile)
        #root = doc.getroot()
        #ET.register_namespace("", "http://tempuri.org/GRMProject.xsd")
        #indent(root)
        #doc.write(self.ProjectFile, encoding="utf-8", xml_declaration=True)
        ds = GRMCore.GRMProject()
        ds.ReadXml(self.ProjectFile)
        ds.WriteXml(self.ProjectFile)
        ds.Dispose()
예제 #3
0
    else:
        description[0:140]
        mDesc.append(description)

#Create an rss xml file
#rss = PyRSS2Gen.RSS2(
#title = "Python Project",
#link = "http://rockhopper.monmouth.edu/cs/jchung/cs498gpl/python_project",
#description = "Get the title, link, and description of each article and write them to a rss feed",
#items = []
#)

#Append all the elements into the items array
#for i in range(len(mTitles)):
#    a = PyRSS2Gen.RSSItem(title = mTitles[i], link = mLinks[i], description= mDesc[i])
#    rss.items.append(a)

#rss.write_xml(open('cssenews.rss.xml','w'))

root = ET.Element("channel")

for i in range(len(mTitles)):
    item = ET.SubElement(root, "item")
    title = ET.SubElement(item, "title")
    title.text = mTitles[i]
    link = ET.SubElement(item, "link")
    link.text = mLinks[i]
    description = ET.SubElement(item, "description")
    description.text = mDesc[i]
tree = ET.ElementTree(root)
tree.write("cssenews.rss.xml")
def writeMetaDataToXml(corpusName, outset):
    root = et.Element("root")
    ftag = et.Subelement(root, "fname")
    # organize le data here
    tree = et.ElementTree(root)
    tree.write("{}.xml".format(corpusName))