Skip to content

Commit

Permalink
Merge pull request #4 from USACE/feature/update-HmsModel
Browse files Browse the repository at this point in the history
Feature/update hms model
  • Loading branch information
ShaneMPutnam authored Feb 1, 2021
2 parents e5738a6 + 9dd21d8 commit 529e708
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 5 deletions.
3 changes: 3 additions & 0 deletions tools/control.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

// HmsControlData ...
type HmsControlData struct {
Title string
Description string
StartDate string `json:"Start Date"`
StartTime string `json:"Start Time"`
Expand Down Expand Up @@ -47,6 +48,8 @@ func getControlData(hm *HmsModel, file string, wg *sync.WaitGroup) {
data := strings.Split(line, ": ")

switch strings.TrimSpace(data[0]) {
case "Control":
controlData.Title = data[1]

case "Description":
controlData.Description = data[1]
Expand Down
3 changes: 3 additions & 0 deletions tools/definition.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ func getDefinitionData(hm *HmsModel) error {

switch strings.TrimSpace(data[0]) {

case "Project":
hm.Title = data[1]

case "Description:":
if projectBlock {
hm.Description = data[1]
Expand Down
4 changes: 4 additions & 0 deletions tools/forcing.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

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

switch strings.TrimSpace(data[0]) {

case "Meteorology":
forcingData.Title = data[1]

case "Description":
forcingData.Description = data[1]

Expand Down
4 changes: 4 additions & 0 deletions tools/geom.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (

// HmsGeometryData ...
type HmsGeometryData struct {
Title string
Description string
Units string `json:"Unit System"`
MissingtoZero string `json:"Missing Flow To Zero"`
Expand Down Expand Up @@ -89,6 +90,9 @@ out:

switch key {

case "Basin":
geometryData.Title = strings.TrimSpace(data[1])

case "Description":
geometryData.Description = strings.TrimSpace(data[1])

Expand Down
11 changes: 6 additions & 5 deletions tools/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ type SupplementalFiles struct {
// HmsModel ...
type HmsModel struct {
Type string
Title string
Version string
Description string
FileStore filestore.FileStore
Expand Down Expand Up @@ -151,27 +152,27 @@ func (hm *HmsModel) Index() Model {
mod := Model{
Type: hm.Type,
Version: hm.Version,
DefinitionFile: hm.DefinitionFile,
DefinitionFile: BuildFilePath(hm.ModelDirectory, hm.DefinitionFile),
Files: ModelFiles{
InputFiles: InputFiles{
ControlFiles: ControlFiles{
Paths: hm.Files.InputFiles.ControlFiles,
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.InputFiles.ControlFiles),
Data: make(map[string]interface{}),
},
ForcingFiles: ForcingFiles{
Paths: hm.Files.InputFiles.ForcingFiles,
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.InputFiles.ForcingFiles),
Data: make(map[string]interface{}),
},
GeometryFiles: GeometryFiles{
Paths: hm.Files.InputFiles.GeometryFiles,
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.InputFiles.GeometryFiles),
FeaturesProperties: make(map[string]interface{}),
Georeference: nil,
},
SimulationVariables: nil,
LocalVariables: nil,
},
OutputFiles: OutputFiles{
Paths: hm.Files.OutputFiles.Paths(),
Paths: buildFilePaths(hm.ModelDirectory, hm.Files.OutputFiles.Paths()),
ModelPrediction: nil,
RunFiles: make([]string, 0),
RunLogs: make([]string, 0),
Expand Down
10 changes: 10 additions & 0 deletions tools/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,13 @@ func BuildFilePath(modelDirectory, fileName string) string {
return filepath.Join(modelDirectory, strings.Replace(fileName, "\\", "/", -1))

}

//buildFilePaths ...
func buildFilePaths(modelDirectory string, fileNames []string) []string {
filePaths := make([]string, len(fileNames))
for i, fileName := range fileNames {
filePaths[i] = BuildFilePath(modelDirectory, fileName)
}
return filePaths

}

0 comments on commit 529e708

Please sign in to comment.