Skip to content

Commit 529e708

Browse files
authored
Merge pull request #4 from USACE/feature/update-HmsModel
Feature/update hms model
2 parents e5738a6 + 9dd21d8 commit 529e708

File tree

6 files changed

+30
-5
lines changed

6 files changed

+30
-5
lines changed

tools/control.go

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99

1010
// HmsControlData ...
1111
type HmsControlData struct {
12+
Title string
1213
Description string
1314
StartDate string `json:"Start Date"`
1415
StartTime string `json:"Start Time"`
@@ -47,6 +48,8 @@ func getControlData(hm *HmsModel, file string, wg *sync.WaitGroup) {
4748
data := strings.Split(line, ": ")
4849

4950
switch strings.TrimSpace(data[0]) {
51+
case "Control":
52+
controlData.Title = data[1]
5053

5154
case "Description":
5255
controlData.Description = data[1]

tools/definition.go

+3
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ func getDefinitionData(hm *HmsModel) error {
125125

126126
switch strings.TrimSpace(data[0]) {
127127

128+
case "Project":
129+
hm.Title = data[1]
130+
128131
case "Description:":
129132
if projectBlock {
130133
hm.Description = data[1]

tools/forcing.go

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99

1010
// HmsForcingData ...
1111
type HmsForcingData struct {
12+
Title string
1213
Description string
1314
Units string `json:"Unit System"`
1415
MissingToDefault string `json:"Set Missing Data to Default"`
@@ -52,6 +53,9 @@ func getForcingData(hm *HmsModel, file string, wg *sync.WaitGroup) {
5253

5354
switch strings.TrimSpace(data[0]) {
5455

56+
case "Meteorology":
57+
forcingData.Title = data[1]
58+
5559
case "Description":
5660
forcingData.Description = data[1]
5761

tools/geom.go

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
// HmsGeometryData ...
1212
type HmsGeometryData struct {
13+
Title string
1314
Description string
1415
Units string `json:"Unit System"`
1516
MissingtoZero string `json:"Missing Flow To Zero"`
@@ -89,6 +90,9 @@ out:
8990

9091
switch key {
9192

93+
case "Basin":
94+
geometryData.Title = strings.TrimSpace(data[1])
95+
9296
case "Description":
9397
geometryData.Description = strings.TrimSpace(data[1])
9498

tools/model.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ type SupplementalFiles struct {
6868
// HmsModel ...
6969
type HmsModel struct {
7070
Type string
71+
Title string
7172
Version string
7273
Description string
7374
FileStore filestore.FileStore
@@ -151,27 +152,27 @@ func (hm *HmsModel) Index() Model {
151152
mod := Model{
152153
Type: hm.Type,
153154
Version: hm.Version,
154-
DefinitionFile: hm.DefinitionFile,
155+
DefinitionFile: BuildFilePath(hm.ModelDirectory, hm.DefinitionFile),
155156
Files: ModelFiles{
156157
InputFiles: InputFiles{
157158
ControlFiles: ControlFiles{
158-
Paths: hm.Files.InputFiles.ControlFiles,
159+
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.InputFiles.ControlFiles),
159160
Data: make(map[string]interface{}),
160161
},
161162
ForcingFiles: ForcingFiles{
162-
Paths: hm.Files.InputFiles.ForcingFiles,
163+
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.InputFiles.ForcingFiles),
163164
Data: make(map[string]interface{}),
164165
},
165166
GeometryFiles: GeometryFiles{
166-
Paths: hm.Files.InputFiles.GeometryFiles,
167+
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.InputFiles.GeometryFiles),
167168
FeaturesProperties: make(map[string]interface{}),
168169
Georeference: nil,
169170
},
170171
SimulationVariables: nil,
171172
LocalVariables: nil,
172173
},
173174
OutputFiles: OutputFiles{
174-
Paths: hm.Files.OutputFiles.Paths(),
175+
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.OutputFiles.Paths()),
175176
ModelPrediction: nil,
176177
RunFiles: make([]string, 0),
177178
RunLogs: make([]string, 0),

tools/utils.go

+10
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,13 @@ func BuildFilePath(modelDirectory, fileName string) string {
3333
return filepath.Join(modelDirectory, strings.Replace(fileName, "\\", "/", -1))
3434

3535
}
36+
37+
//buildFilePaths ...
38+
func buildFilePaths(modelDirectory string, fileNames []string) []string {
39+
filePaths := make([]string, len(fileNames))
40+
for i, fileName := range fileNames {
41+
filePaths[i] = BuildFilePath(modelDirectory, fileName)
42+
}
43+
return filePaths
44+
45+
}

0 commit comments

Comments
 (0)