|
|
package loaders |
|
|
|
|
|
import ( |
|
|
"os" |
|
|
"fmt" |
|
|
"strconv" |
|
|
"io/ioutil" |
|
|
"encoding/csv" |
|
|
"encoding/json" |
|
|
) |
|
|
|
|
|
type Scalers struct { |
|
|
MinValue map[string]float32 `json:"min_value"` |
|
|
MaxValue map[string]float32 `json:"max_value"` |
|
|
} |
|
|
|
|
|
func ScalersLoader(filename string) (Scalers, error) { |
|
|
var scalers_data Scalers |
|
|
|
|
|
scalers_json, err := ioutil.ReadFile(filename) |
|
|
if err != nil { return scalers_data, err } |
|
|
|
|
|
err = json.Unmarshal(scalers_json, &scalers_data) |
|
|
if err != nil { return scalers_data, err } |
|
|
|
|
|
return scalers_data, nil |
|
|
} |
|
|
|
|
|
func DatasetLoader(filepath string) ([][]interface{}, error) { |
|
|
csv_file, err := os.Open(filepath) |
|
|
if err != nil { |
|
|
return nil, err |
|
|
} |
|
|
defer csv_file.Close() |
|
|
|
|
|
csv_reader := csv.NewReader(csv_file) |
|
|
csv_records, err := csv_reader.ReadAll() |
|
|
if err != nil { |
|
|
return nil, err |
|
|
} |
|
|
|
|
|
var csv_data [][]interface{} |
|
|
for _, csv_row := range csv_records[1:] { |
|
|
var row_data []interface{} |
|
|
|
|
|
|
|
|
row_data = append(row_data, csv_row[0]) |
|
|
|
|
|
|
|
|
for _, csv_row_val := range csv_row[1:] { |
|
|
val, err := strconv.ParseFloat(csv_row_val, 32) |
|
|
if err != nil { |
|
|
return nil, fmt.Errorf("error parsing value '%s': %v", csv_row_val, err) |
|
|
} |
|
|
row_data = append(row_data, float32(val)) |
|
|
} |
|
|
|
|
|
csv_data = append(csv_data, row_data) |
|
|
} |
|
|
|
|
|
return csv_data, nil |
|
|
} |
|
|
|
|
|
|
|
|
|