mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
voacap - Added validation for longitude values
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
# Date : 23 May 2023
|
# Date : 23 May 2023
|
||||||
# Updated : 24 August 2025
|
# Updated : 24 August 2025
|
||||||
# Purpose : Offline HF prediction using voacapl
|
# Purpose : Offline HF prediction using voacapl
|
||||||
#set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
|
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
|
||||||
trap 'echo -e "${RED}\"${last_command}\" command failed with exit code $?.${NC}"' ERR
|
trap 'echo -e "${RED}\"${last_command}\" command failed with exit code $?.${NC}"' ERR
|
||||||
@@ -81,6 +81,32 @@ validate_latitude() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
validate_longitude() {
|
||||||
|
local lon="$1"
|
||||||
|
|
||||||
|
if [[ -z "$lon" ]]; then
|
||||||
|
echo -e "${RED}Longitude can't be an empty value${NC}" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [[ "$lon" =~ ^-?[0-9]+([.][0-9]+)?$ ]]; then
|
||||||
|
echo -e "${RED}Longitude must be a number${NC}" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local lonf
|
||||||
|
lonf=$(printf "%.10f" "$lon" 2>/dev/null) || {
|
||||||
|
echo -e "${RED}Error converting longitude ${NC}" >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check range: -180 <= lat <= 1800
|
||||||
|
if (( $(echo "$lon < -180" | bc -l) )) || (( $(echo "$lon > 180" | bc -l) )); then
|
||||||
|
echo -e "${RED}Longitude must be in range between -180 and 180 degrees${NC}" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
ET_SSN="${HOME}/.local/share/emcomm-tools/voacap/ssn.txt"
|
ET_SSN="${HOME}/.local/share/emcomm-tools/voacap/ssn.txt"
|
||||||
if [[ ! -e ${ET_SSN} ]]; then
|
if [[ ! -e ${ET_SSN} ]]; then
|
||||||
echo -e "${RED}Sunspot number file not available:${WHITE}${ET_SSN}${NC}"
|
echo -e "${RED}Sunspot number file not available:${WHITE}${ET_SSN}${NC}"
|
||||||
@@ -189,6 +215,7 @@ fi
|
|||||||
read TL TK <<< "$result"
|
read TL TK <<< "$result"
|
||||||
|
|
||||||
validate_latitude "$TL" || exit 1
|
validate_latitude "$TL" || exit 1
|
||||||
|
validate_longitude "$TK" || exit 1
|
||||||
|
|
||||||
TL1=$( awk -v n1=$TL -v n2=90 -v n3=-90 'BEGIN {if (n1<n3 || n1>n2) printf ("%s", "a"); else printf ("%.2f", n1);}' )
|
TL1=$( awk -v n1=$TL -v n2=90 -v n3=-90 'BEGIN {if (n1<n3 || n1>n2) printf ("%s", "a"); else printf ("%.2f", n1);}' )
|
||||||
|
|
||||||
@@ -216,6 +243,7 @@ fi
|
|||||||
read RL RK <<< "$result"
|
read RL RK <<< "$result"
|
||||||
|
|
||||||
validate_latitude "$RL" || exit 1
|
validate_latitude "$RL" || exit 1
|
||||||
|
validate_longitude "$RK" || exit 1
|
||||||
|
|
||||||
RL1=$( awk -v n1=$RL -v n2=90 -v n3=-90 'BEGIN {if (n1<n3 || n1>n2) printf ("%s", "a"); else printf ("%.2f", n1);}' )
|
RL1=$( awk -v n1=$RL -v n2=90 -v n3=-90 'BEGIN {if (n1<n3 || n1>n2) printf ("%s", "a"); else printf ("%.2f", n1);}' )
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user