diff options
author | Guilhem Moulin <guilhem@fripost.org> | 2023-09-28 15:39:04 +0200 |
---|---|---|
committer | Guilhem Moulin <guilhem@fripost.org> | 2023-09-28 15:40:54 +0200 |
commit | ee0d38dd8dce3572fd572ac532f1185ae84a0437 (patch) | |
tree | ab0b5883c841d1aa90248c1139a03202709c8457 | |
parent | d068cc2a1058ba23515593a6e2fb8bd178946f5d (diff) |
Allow overwriting an existing observation file.
(Or creating such file without creating a matching project.)
In this mode, --observation-file is mandatory and --project-name is left
unset. The file is silently overwritten.
-rwxr-xr-x | gis-observation-map | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gis-observation-map b/gis-observation-map index dd8f5fe..ffeff5d 100755 --- a/gis-observation-map +++ b/gis-observation-map @@ -78,7 +78,8 @@ class geometryAction(argparse.Action): parser = argparse.ArgumentParser( description='Create a QGIS project with observations from Artdatabanken.', prog = programName, - usage='''%(prog)s --project-home=DIR --project-name=NAME {--geometry=FILE|--point=X,Y} ...''' + usage='''%(prog)s --project-home=DIR --project-name=NAME {--geometry=FILE|--point=X,Y} ... + %(prog)s --observation-file=NAME {--geometry=FILE|--point=X,Y} ...''' ) parser.add_argument('--project-name', metavar='NAME', help='Project filename (and title)') @@ -140,6 +141,9 @@ if args.project_home is not None and args.project_name is not None: if args.observation_file is None: args.observation_file = Path('observations') +elif args.observation_file is not None: + projectInstance = None + elif args.project_home is None or args.project_name is None: parser.print_usage() exit(1) @@ -329,7 +333,7 @@ for geom in args.geometry: geometries.append(geometry) feature = layer.GetNextFeature() -if len(args.geometry) == 0: +if len(args.geometry) == 0 and projectInstance is not None: r = geometries[0].GetGeometryRef(0) pt0X, pt0Y = r.GetPoint_2D(0) pt1X, pt1Y = r.GetPoint_2D(2) @@ -502,7 +506,10 @@ def getObservations(taxonLists, taxonRedlistCategories, searchFilter): json.dump(obs, fp) fp.flush() - gdal.VectorTranslate(path.as_posix(), fp.name, format=drv.name, reproject=True, dstSRS=target_srs) + gdal.VectorTranslate( + path.as_posix(), fp.name, format=drv.name, + accessMode='overwrite', + reproject=True, dstSRS=target_srs) obs = None if projectInstance is not None: @@ -796,7 +803,7 @@ if args.since is not None or args.until is not None: getObservations(taxonLists, taxonRedlistCategories, searchFilter) topo_maps = ['Topografi 10', 'Topografi 50', 'Topografi 100'] -if args.topo_basedir is not None: +if args.topo_basedir is not None and projectInstance is not None: idxContains = {} for topo in topo_maps: qlr_paths = [] |