Coverage for grm\XMLMake.py : 0%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# -*- coding: utf-8 -*-
3import os
4import xml.etree.ElementTree as ET
6from grm.lib.Util import indent
9class make:
10 def __init__(self):
11 self.ProjectFile = ""
13 # New Project 시에 GMP 파일 생성 하기
14 def Make_GMP_File(self, save_gmp_path):
15 GRMProject = ET.Element("GRMProject")
16 GRMProject.set("xmlns", "http://tempuri.org/GRMProject.xsd")
17 ProjectSettings = ET.SubElement(GRMProject, "ProjectSettings")
18 ET.SubElement(ProjectSettings, "GRMSimulationType").text = "Normal"
19 ET.SubElement(ProjectSettings, "DomainFile")
20 ET.SubElement(ProjectSettings, "SlopeFile")
21 ET.SubElement(ProjectSettings, "FlowDirectionFile")
22 ET.SubElement(ProjectSettings, "FlowAccumFile")
23 ET.SubElement(ProjectSettings, "StreamFile")
24 ET.SubElement(ProjectSettings, "ChannelWidthFile")
25 ET.SubElement(ProjectSettings, "InitialSoilSaturationRatioFile")
26 ET.SubElement(ProjectSettings, "LandCoverDataType").text = "File"
27 ET.SubElement(ProjectSettings, "LandCoverFile")
28 ET.SubElement(ProjectSettings, "LandCoverVATFile")
29 ET.SubElement(ProjectSettings, "ConstantRoughnessCoeff")
30 ET.SubElement(ProjectSettings, "ConstantImperviousRatio")
31 ET.SubElement(ProjectSettings, "LAIFile")
32 ET.SubElement(ProjectSettings, "BlaneyCriddleCoefDataFile")
33 ET.SubElement(ProjectSettings, "SoilTextureDataType").text = "File"
34 ET.SubElement(ProjectSettings, "SoilTextureFile")
35 ET.SubElement(ProjectSettings, "SoilTextureVATFile")
36 ET.SubElement(ProjectSettings, "ConstantSoilPorosity")
37 ET.SubElement(ProjectSettings, "ConstantSoilEffPorosity")
38 ET.SubElement(ProjectSettings, "ConstantSoilWettingFrontSuctionHead")
39 ET.SubElement(ProjectSettings, "ConstantSoilHydraulicConductivity")
40 ET.SubElement(ProjectSettings, "SoilDepthDataType").text = "File"
41 ET.SubElement(ProjectSettings, "SoilDepthFile")
42 ET.SubElement(ProjectSettings, "SoilDepthVATFile")
43 ET.SubElement(ProjectSettings, "ConstantSoilDepth")
44 ET.SubElement(ProjectSettings, "InitialChannelFlowFile")
45 ET.SubElement(ProjectSettings, "PrecipitationDataFile").text = ""
46 ET.SubElement(ProjectSettings, "PrecipitationInterval_min").text = "0"
47 ET.SubElement(ProjectSettings, "TemperatureMaxDataFile")
48 ET.SubElement(ProjectSettings, "TemperatureMaxInterval_min")
49 ET.SubElement(ProjectSettings, "TemperatureMinDataFile")
50 ET.SubElement(ProjectSettings, "TemperatureMinInterval_min")
51 ET.SubElement(ProjectSettings, "DaytimeLengthDataFile")
52 ET.SubElement(ProjectSettings, "DaytimeLengthInterval_min")
53 ET.SubElement(ProjectSettings, "DaytimeHoursRatioDataFile")
54 ET.SubElement(ProjectSettings, "SolarRadiationDataFile")
55 ET.SubElement(ProjectSettings, "SolarRadiationInterval_min")
56 ET.SubElement(ProjectSettings, "SnowPackTemperatureDataFile")
57 ET.SubElement(ProjectSettings, "SnowPackTemperatureInterval_min")
58 ET.SubElement(ProjectSettings, "FlowDirectionType").text = "StartsFromE_TauDEM"
59 ET.SubElement(ProjectSettings, "MaxDegreeOfParallelism").text = "-1"
60 ET.SubElement(ProjectSettings, "SimulationStartingTime").text = "0"
61 ET.SubElement(ProjectSettings, "ComputationalTimeStep_min")
62 ET.SubElement(ProjectSettings, "IsFixedTimeStep").text = "false"
63 ET.SubElement(ProjectSettings, "SimulationDuration_hr")
64 ET.SubElement(ProjectSettings, "OutputTimeStep_min")
65 ET.SubElement(ProjectSettings, "SimulateInfiltration").text = "true"
66 ET.SubElement(ProjectSettings, "SimulateSubsurfaceFlow").text = "true"
67 ET.SubElement(ProjectSettings, "SimulateBaseFlow").text = "true"
68 ET.SubElement(ProjectSettings, "SimulateInterception").text = "true"
69 ET.SubElement(ProjectSettings, "SimulateEvapotranspiration").text = "true"
70 ET.SubElement(ProjectSettings, "SimulateSnowMelt").text = "true"
71 ET.SubElement(ProjectSettings, "SimulateFlowControl").text = "false"
72 ET.SubElement(ProjectSettings, "MakeIMGFile").text = "false"
73 ET.SubElement(ProjectSettings, "MakeASCFile").text = "false"
74 ET.SubElement(ProjectSettings, "MakeSoilSaturationDistFile").text = "true"
75 ET.SubElement(ProjectSettings, "MakeRfDistFile").text = "true"
76 ET.SubElement(ProjectSettings, "MakeRFaccDistFile").text = "true"
77 ET.SubElement(ProjectSettings, "MakeFlowDistFile").text = "true"
78 ET.SubElement(ProjectSettings, "PrintOption").text = "All"
79 ET.SubElement(ProjectSettings, "PrintAveValue").text = "false"
80 ET.SubElement(ProjectSettings, "AveValueTimeInterval_min")
81 ET.SubElement(ProjectSettings, "WriteLog").text = "false"
82 ET.SubElement(ProjectSettings, "AboutThisProject")
83 ET.SubElement(ProjectSettings, "AboutWatershed")
84 ET.SubElement(ProjectSettings, "AboutLandCoverMap")
85 ET.SubElement(ProjectSettings, "AboutSoilMap")
86 ET.SubElement(ProjectSettings, "AboutSoilDepthMap")
87 ET.SubElement(ProjectSettings, "AboutRainfall")
88 ET.SubElement(ProjectSettings, "ProjectSavedTime")
90 # PC 이름 가져오기
91 pc_name = os.getenv("COMPUTERNAME")
93 # USER (로그인 된 계정) 이름 가져오기
94 user_name = os.getenv("USERNAME")
96 ET.SubElement(ProjectSettings, "ComputerName").text = pc_name
97 ET.SubElement(ProjectSettings, "ComputerUserName").text = user_name
98 ET.SubElement(ProjectSettings, "GRMVersion").text = ""
99 indent(GRMProject)
100 ET.ElementTree(GRMProject).write(
101 save_gmp_path, encoding="utf-8", xml_declaration=True
102 )
105# self.indent(save_gmp_path)
106#
107# def indent(self,Pro_path):
108# arg=GetScriptDirectory_Path()+ "/ReWriteXML/ReadAndWriteXML.exe " + Pro_path
109# callExecute(arg)