EOX GitLab Instance
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
VS
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ESA
PRISM
VS
Commits
32f8ab93
Commit
32f8ab93
authored
4 years ago
by
Lubomir Dolezal
Browse files
Options
Downloads
Patches
Plain Diff
registering to coverage type based on band count
parent
5a128112
No related branches found
Branches containing commit
No related tags found
Tags containing commit
2 merge requests
!49
Production release 1.1.1
,
!46
Emg prod types
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
.bumpversion.cfg
+1
-1
1 addition, 1 deletion
.bumpversion.cfg
core/registrar/backend.py
+25
-4
25 additions, 4 deletions
core/registrar/backend.py
core/setup.py
+1
-1
1 addition, 1 deletion
core/setup.py
with
27 additions
and
6 deletions
.bumpversion.cfg
+
1
−
1
View file @
32f8ab93
...
...
@@ -28,7 +28,7 @@ replace = version="{new_version}"
search
=
version="{current_version}"
replace
=
version="{new_version}"
[bumpversion:glob:re
gistrar
/setup.py]
[bumpversion:glob:
co
re/setup.py]
search
=
version="{current_version}"
replace
=
version="{new_version}"
...
...
This diff is collapsed.
Click to expand it.
core/registrar/backend.py
+
25
−
4
View file @
32f8ab93
...
...
@@ -7,7 +7,9 @@ import json
import
django
from
django.db
import
transaction
from
django.db.models
import
Count
from
django.contrib.gis.geos
import
GEOSGeometry
,
Polygon
from
osgeo
import
gdal
from
.exceptions
import
RegistrationError
from
.context
import
Context
...
...
@@ -129,14 +131,16 @@ class EOxServerBackend(Backend):
from
eoxserver.resources.coverages.registration.registrators.gdal
import
GDALRegistrator
# get the mapping for this particular item
type_mapping
=
self
.
mapping
[
item
.
product_type
]
try
:
type_mapping
=
self
.
mapping
[
item
.
product_type
]
except
KeyError
:
raise
RegistrationError
(
f
'
Could not find mapping for
{
item
.
product_type
}
in configuration
'
)
mapping
=
type_mapping
.
get
(
item
.
product_level
)
or
type_mapping
.
get
(
None
)
if
not
mapping
:
raise
RegistrationError
(
f
'
Could not get mapping for
{
item
.
product_type
}
{
item
.
product_level
}
'
)
_
,
metadata_file
=
source
.
get_container_and_path
(
item
.
metadata_files
[
0
])
# metadata_file = '/'.join(item.metadata_files[0].split('/')[1:])
storage
=
self
.
_get_storage_from_source
(
source
,
item
.
path
)
try
:
...
...
@@ -180,9 +184,26 @@ class EOxServerBackend(Backend):
storage
+
[
source
.
get_container_and_path
(
raster_item
)[
1
]]
for
raster_item
in
(
raster_items
if
isinstance
(
raster_items
,
list
)
else
[
raster_items
])
]
if
isinstance
(
coverage_type_name
,
list
):
# determine which one to use based on number of bands
gdal_path_prefix
=
''
if
isinstance
(
source
,
SwiftSource
):
gdal_path_prefix
=
'
/vsiswift/
'
elif
isinstance
(
source
,
S3Source
):
gdal_path_prefix
=
'
/vsis3/
'
raster_item_to_check
=
f
'
{
gdal_path_prefix
}{
raster_items
[
0
][
0
]
}
/
{
raster_items
[
0
][
1
]
}
'
ds
=
gdal
.
Open
(
raster_item_to_check
)
logger
.
debug
(
"
Raster has number of bands:
'
%s
'"
%
ds
.
RasterCount
)
# find covtype that has correct number of bands
try
:
coverage_model
=
models
.
CoverageType
.
objects
\
.
filter
(
name__in
=
coverage_type_name
)
\
.
annotate
(
field_count
=
Count
(
'
field_types
'
))
\
.
get
(
field_count
=
ds
.
RasterCount
)
except
models
.
CoverageType
.
DoesNotExist
:
raise
RegistrationError
(
f
'
Coverage Band Count is different than in any of configured CoverageTypes
'
)
coverage_type_name
=
coverage_model
.
name
logger
.
info
(
f
"
Registering coverage
{
'
s
'
if
len
(
raster_items
)
>
1
else
''
}
{
raster_items
}
as
{
coverage_type_name
}
"
)
report
=
GDALRegistrator
().
register
(
data_locations
=
raster_items
,
metadata_locations
=
[
storage
+
[
metadata_file
]],
...
...
This diff is collapsed.
Click to expand it.
core/setup.py
+
1
−
1
View file @
32f8ab93
...
...
@@ -6,7 +6,7 @@ long_description = ""
setup
(
name
=
"
registrar
"
,
# Replace with your own username
version
=
"
1.0.0
-rc.2
"
,
version
=
"
1.0.0
"
,
author
=
""
,
author_email
=
""
,
description
=
"
registrar for PVS
"
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment