view cmd/wfs/main.go @ 5402:f5063fa7f666 marking-single-beam

Add schema change for marking vessel single beam scans.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 06 Jul 2021 00:30:39 +0200
parents 349e409fbbb1
children
line wrap: on
line source

// This is Free Software under GNU Affero General Public License v >= 3.0
// without warranty, see README.md and license for details.
//
// SPDX-License-Identifier: AGPL-3.0-or-later
// License-Filename: LICENSES/AGPL-3.0.txt
//
// Copyright (C) 2018 by via donau
//   – Österreichische Wasserstraßen-Gesellschaft mbH
// Software engineering by Intevation GmbH
//
// Author(s):
//  * Sascha L. Teichmann <sascha.teichmann@intevation.de>

// Command wfs is an diagnostic tool for manually downloading WFS data.
package main

import (
	"flag"
	"log"

	"gemma.intevation.de/gemma/pkg/wfs"
)

func check(err error) {
	if err != nil {
		log.Fatalf("error: %v\n", err)
	}
}

func main() {
	var (
		dumpCaps    = flag.Bool("dump-caps", false, "Dump capabilities document")
		featureType = flag.String("features", "", "feature to get")
		sortBy      = flag.String("sortby", "", "Sort features by this property")
		user        = flag.String("user", "", "user name")
		password    = flag.String("password", "", "user password")
	)
	flag.Parse()

	for _, arg := range flag.Args() {
		caps, err := wfs.GetCapabilities(arg)
		check(err)
		if *dumpCaps {
			dump(caps)
		}

		if *featureType == "" {
			continue
		}

		feature := caps.FindFeatureType(*featureType)
		if feature == nil {
			log.Fatalf("Unknown feature type '%s'\n", *featureType)
		}

		dl, err := wfs.GetFeatures(caps, *featureType, *sortBy)
		check(err)

		parseFeatures(*user, *password, dl, feature.DefaultCRS)
	}
}