46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package producer
|
|
|
|
import (
|
|
"encoding/xml"
|
|
"os"
|
|
)
|
|
|
|
// Report represents the root XML element
|
|
type Report struct {
|
|
XMLName xml.Name `xml:"report"`
|
|
Satellite string `xml:"satellite,attr"`
|
|
Sensor string `xml:"sensor,attr"`
|
|
ProductLevel string `xml:"productLevel,attr"`
|
|
Scenes []ReportScene `xml:"scenes>scene"`
|
|
}
|
|
|
|
// Scene represents each scene in the report
|
|
type ReportScene struct {
|
|
Name string `xml:"name,attr"`
|
|
TiffData string `xml:"tiffData"`
|
|
TfwData string `xml:"tfwData,omitempty"`
|
|
RpbData string `xml:"rpbData,omitempty"`
|
|
BrowserData string `xml:"browserData,omitempty"`
|
|
BrowserRpbData string `xml:"browserRpbData,omitempty"`
|
|
ThumbData string `xml:"thumbData,omitempty"`
|
|
ShpData string `xml:"shpData,omitempty"`
|
|
ShxData string `xml:"shxData,omitempty"`
|
|
DbfData string `xml:"dbfData,omitempty"`
|
|
MetaData string `xml:"metaData"`
|
|
QualityData string `xml:"qualityData,omitempty"`
|
|
}
|
|
|
|
func WriteReport(report *Report, filename string) error {
|
|
output, err := xml.MarshalIndent(report, "", " ")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = os.WriteFile(filename, output, 0644)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|