Something went wrong on our end
-
Fabian Schindler authoredFabian Schindler authored
init-db.sh 7.00 KiB
{{/*
Template to create the invocation of a browse type from a given
product type name, browse type name and browse type definition
Expects '.' to be a dictionary in the following shape:
{
product_type_name: "<product_type_name>",
browse_type_name: "<browse_type_name>", // or nil
browse_type: {
// either
grey: {
expression: "",
range: [low, high], // optional
nodata: nodatavalue, // optional
}
// or
red: {
expression: "",
range: [low, high], // optional
nodata: nodatavalue, // optional
},
green: {
expression: "",
range: [low, high], // optional
nodata: nodatavalue, // optional
},
blue: {
expression: "",
range: [low, high], // optional
nodata: nodatavalue, // optional
},
// optionally:
alpha: {
expression: "",
range: [low, high], // optional
nodata: nodatavalue, // optional
}
}
}
*/}}
{{- define "browsetype.cli" }}
python3 manage.py browsetype create "{{ .product_type_name }}" {{ if .browse_type_name }} "{{ .browse_type_name }}" {{- end }} \
{{- if hasKey .browse_type "grey" }}
--grey {{ .browse_type.grey.expression | quote }} \
{{- if hasKey .browse_type.grey "range" }}
--grey-range {{ range .browse_type.grey.range }}{{ . }} {{ end }}\
{{- end }}
{{- if hasKey .browse_type.grey "nodata" }}
--grey-nodata {{ .browse_type.grey.nodata }} \
{{- end }}
{{- else if and (.browse_type.red) (and .browse_type.green .browse_type.blue) }}
--red {{ .browse_type.red.expression | quote }} \
--green {{ .browse_type.green.expression | quote }} \
--blue {{ .browse_type.blue.expression | quote }} \
{{- if hasKey .browse_type.red "range" }}
--red-range {{ range .browse_type.red.range }}{{ . }} {{ end }}\
{{- end }}
{{- if hasKey .browse_type.green "range" }}
--green-range {{ range .browse_type.green.range }}{{ . }} {{ end }}\
{{- end }}
{{- if hasKey .browse_type.blue "range" }}
--blue-range {{ range .browse_type.blue.range }}{{ . }} {{ end }}\
{{- end }}
{{- if hasKey .browse_type.red "nodata" }}
--red-nodata {{ .browse_type.red.nodata }} \
{{- end }}
{{- if hasKey .browse_type.green "nodata" }}
--green-nodata {{ .browse_type.green.nodata }} \
{{- end }}
{{- if hasKey .browse_type.blue "nodata" }}
--blue-nodata {{ .browse_type.blue.nodata }} \
{{- end }}
{{- if hasKey .browse_type "alpha" }}
--grey {{ .browse_type.alpha.expression | quote }} \
{{- if hasKey .browse_type.alpha "range" }}
--alpha-range {{ range .browse_type.alpha.range }}{{ . }} {{ end }}\
{{- end }}
{{- if hasKey .browse_type.alpha "nodata" }}
--alpha-nodata {{ .browse_type.alpha.nodata }} \
{{- end }}
{{- end }}
{{- end }}
--traceback
{{- end -}}
# Check if collection exits in database and initialize database only if not
if python3 manage.py id check {{ index (keys .Values.config.collections) 0 | quote }}; then
echo "Initialize database"
python3 manage.py coveragetype import /rgbnir_definition.json \
--traceback
# TODO: deleteme
python3 manage.py coveragetype create S2L2A_B01 --field-type B01 B01 "Solar irradiance" "W/m2/um" 1913.57
python3 manage.py coveragetype create S2L2A_B02 --field-type B02 B02 "Solar irradiance" "W/m2/um" 1941.63
python3 manage.py coveragetype create S2L2A_B03 --field-type B03 B03 "Solar irradiance" "W/m2/um" 1822.61
python3 manage.py coveragetype create S2L2A_B04 --field-type B04 B04 "Solar irradiance" "W/m2/um" 1512.79
python3 manage.py coveragetype create S2L2A_B05 --field-type B05 B05 "Solar irradiance" "W/m2/um" 1425.56
python3 manage.py coveragetype create S2L2A_B06 --field-type B06 B06 "Solar irradiance" "W/m2/um" 1288.32
python3 manage.py coveragetype create S2L2A_B07 --field-type B07 B07 "Solar irradiance" "W/m2/um" 1163.19
python3 manage.py coveragetype create S2L2A_B08 --field-type B08 B08 "Solar irradiance" "W/m2/um" 1036.39
python3 manage.py coveragetype create S2L2A_B8A --field-type B8A B8A "Solar irradiance" "W/m2/um" 955.19
python3 manage.py coveragetype create S2L2A_B09 --field-type B09 B09 "Solar irradiance" "W/m2/um" 813.04
python3 manage.py coveragetype create S2L2A_B11 --field-type B11 B11 "Solar irradiance" "W/m2/um" 245.59
python3 manage.py coveragetype create S2L2A_B12 --field-type B12 B12 "Solar irradiance" "W/m2/um" 85.25
echo "Initializing collection {{ index (keys .Values.config.collections) 0 | squote }}."
{{- range $product_type_name, $product_type := .Values.config.products.types | default dict }}
#
# {{ $product_type_name }}
#
# create the product type
python3 manage.py producttype create {{ $product_type_name | quote }} \
{{ range $_, $coverage_type := $product_type.coverages }}--coverage-type {{ $coverage_type | quote }} \
{{ end }} --traceback
{{- if hasKey $product_type "default_browse" }}
{{- template "browsetype.cli" dict "product_type_name" $product_type_name "browse_type_name" nil "browse_type" (get $product_type.browses $product_type.default_browse) -}}
{{- end }}
{{- range $browse_type_name, $browse_type := $product_type.browses }}
{{- template "browsetype.cli" dict "product_type_name" $product_type_name "browse_type_name" $browse_type_name "browse_type" $browse_type -}}
{{- end }}
# create mask type
{{- range $mask_type_name, $mask_type := $product_type.masks }}
python3 manage.py masktype create {{ $product_type_name | quote }} {{ $mask_type_name | quote }} \
{{ if $mask_type.validity -}} --validity \ {{- end }} --traceback
{{- end }}
{{- end }} {{/* range .Values.config.products.types */}}
# set up collection type
{{- range $collection_name, $collection := .Values.config.collections }}
python3 manage.py collectiontype create "{{ $collection_name }}_type" \
{{- range $coverage_type := $collection.coverage_types }}
--coverage-type {{ $coverage_type | quote }} \
{{- end }}
{{- range $product_type_name := $collection.product_types }}
--product-type {{ $product_type_name | quote }} \
{{- end }}
--traceback
# Instantiate a collection for the collection itself and all levels
python3 manage.py collection create {{ $collection_name | quote }} \
--type "{{ $collection_name }}_type" \
--traceback
{{- range $product_level := $collection.product_levels }}
python3 manage.py collection create "{{ $collection_name }}_{{ $product_level }}" \
--type "{{ $collection_name }}_type" \
--traceback
{{- end }}
{{- end }} {{/* range .collections */}}
else
echo "Using existing database"
fi