Browse Source

add migration process comments

tags/1.5
Nico Rey 4 years ago
parent
commit
cec3632ccb
1 changed files with 28 additions and 8 deletions
  1. +28
    -8
      migrate_data.sh

+ 28
- 8
migrate_data.sh View File

@@ -5,27 +5,41 @@
. "$HOME/.tweepy.conf" . "$HOME/.tweepy.conf"
. "$NOAA_HOME/common.sh" . "$NOAA_HOME/common.sh"


# TODO: Warn the user
# This is the original path where images were stored
BASEPATH="/var/www/wx/image" BASEPATH="/var/www/wx/image"

# This is the destination path (AKA the new path)
FINALPATH="/var/www/wx/images" FINALPATH="/var/www/wx/images"

# This is a list of satellite names
SAT_NAMES="NOAA15 NOAA18 NOAA19 METEOR-M2" SAT_NAMES="NOAA15 NOAA18 NOAA19 METEOR-M2"
DB_PATH="${NOAA_HOME}/panel.db"


# Here's where the database will live
DB_PATH="${NOAA_HOME}/panel.db"


( (
# To speed up the migration process and
# reduce the SD card wear, the database
# operations are done over the RAMFS
# partition
cd "${RAMFS_AUDIO}" || exit 1 cd "${RAMFS_AUDIO}" || exit 1
sqlite3 < "${NOAA_HOME}/panel.sql" sqlite3 < "${NOAA_HOME}/panel.sql"
) )




cd "$BASEPATH" || exit 1 cd "$BASEPATH" || exit 1

# The webpanel have thumbnails!
mkdir -p "$FINALPATH/thumb" mkdir -p "$FINALPATH/thumb"


# Find all the images
for filename in $(find . -name *.jpg); do for filename in $(find . -name *.jpg); do
# Grab just the filename without the yyyy/mm/dd path
basename="$(echo "$filename" | sed 's~.*/~~')" basename="$(echo "$filename" | sed 's~.*/~~')"
for prefix in $SAT_NAMES; do for prefix in $SAT_NAMES; do
basedate="$(echo "$basename" | sed -e "s/^$prefix//" | cut -f1,2 -d'-' | sed -e "s/-//")" basedate="$(echo "$basename" | sed -e "s/^$prefix//" | cut -f1,2 -d'-' | sed -e "s/-//")"
if [[ $basename == *"$prefix"* ]]; then if [[ $basename == *"$prefix"* ]]; then
# Grab the satellite name from the file name
sat_name=$prefix sat_name=$prefix
fi fi
done done
@@ -33,25 +47,31 @@ for filename in $(find . -name *.jpg); do
date_normalized=$(echo "$basedate" | sed -e "s/^$sat_name//;s/./&:/12;s/./&:/10;s/./& /8;s/./&\//6;s/./&\//4") date_normalized=$(echo "$basedate" | sed -e "s/^$sat_name//;s/./&:/12;s/./&:/10;s/./& /8;s/./&\//6;s/./&\//4")
epoch_date=$(date "+%s" -d "$date_normalized") epoch_date=$(date "+%s" -d "$date_normalized")
if [[ $basename == *"METEOR"* ]]; then if [[ $basename == *"METEOR"* ]]; then
# Meteor files have one more dash on its name
passname=$(echo "$basename" | cut -f1,2,3 -d'-') passname=$(echo "$basename" | cut -f1,2,3 -d'-')
else else
passname=$(echo "$basename" | cut -f1,2 -d'-') passname=$(echo "$basename" | cut -f1,2 -d'-')
fi fi
echo "Migration in progress: $basename" echo "Migration in progress: $basename"
cp "$BASEPATH/$filename" "$FINALPATH" cp "$BASEPATH/$filename" "$FINALPATH"

# Create thumbnails for old images
convert -thumbnail 300 "$BASEPATH/$filename" "$FINALPATH/thumb/$basename" convert -thumbnail 300 "$BASEPATH/$filename" "$FINALPATH/thumb/$basename"
if [[ $basename == *"METEOR"* ]]; then if [[ $basename == *"METEOR"* ]]; then
sqlite3 "${RAMFS_AUDIO}/panel.db" "insert into decoded_passes (pass_start, file_path, daylight_pass, is_noaa) values ($epoch_date,\"$passname\",1,0);"
sqlite3 "${RAMFS_AUDIO}/panel.db" "insert into decoded_passes (pass_start, file_path, daylight_pass, is_noaa) values ($epoch_date,\"$passname\",1,0);"
sqlite3 "${RAMFS_AUDIO}/panel.db" "insert or replace into predict_passes (sat_name,pass_start,pass_end,max_elev) values (\"$sat_name\",$epoch_date,$epoch_date,0);"
# Insert each pass on the database. Also insert the pass prediction
sqlite3 "${RAMFS_AUDIO}/panel.db" "INSERT INTO decoded_passes (pass_start, file_path, daylight_pass, is_noaa) VALUES ($epoch_date,\"$passname\",1,0);"
sqlite3 "${RAMFS_AUDIO}/panel.db" "INSERT OR REPLACE INTO predict_passes (sat_name,pass_start,pass_end,max_elev) VALUES (\"$sat_name\",$epoch_date,$epoch_date,0);"
elif [[ $basename == *"ZA"* ]]; then elif [[ $basename == *"ZA"* ]]; then
sqlite3 "${RAMFS_AUDIO}/panel.db" "insert or replace into predict_passes (sat_name,pass_start,pass_end,max_elev) values (\"$sat_name\",$epoch_date,$epoch_date,0);"
sqlite3 "${RAMFS_AUDIO}/panel.db" "INSERT OR REPLACE INTO predict_passes (sat_name,pass_start,pass_end,max_elev) VALUES (\"$sat_name\",$epoch_date,$epoch_date,0);"
if [[ -f "$FINALPATH/$passname-MSA.jpg" ]]; then if [[ -f "$FINALPATH/$passname-MSA.jpg" ]]; then
sqlite3 "${RAMFS_AUDIO}/panel.db" "insert into decoded_passes (pass_start, file_path, daylight_pass, is_noaa) values ($epoch_date,\"$passname\",1,1);"
# MSA requires a daylight pass and daylight pass is a column of decoded_passes so this is the way to grab them
sqlite3 "${RAMFS_AUDIO}/panel.db" "INSERT INTO decoded_passes (pass_start, file_path, daylight_pass, is_noaa) VALUES ($epoch_date,\"$passname\",1,1);"
else else
sqlite3 "${RAMFS_AUDIO}/panel.db" "insert into decoded_passes (pass_start, file_path, daylight_pass, is_noaa) values ($epoch_date,\"$passname\",0,1);"
sqlite3 "${RAMFS_AUDIO}/panel.db" "INSERT INTO decoded_passes (pass_start, file_path, daylight_pass, is_noaa) VALUES ($epoch_date,\"$passname\",0,1);"
fi fi
fi fi

# Move the database file to its final destination
mv "${RAMFS_AUDIO}/panel.db" "$DB_PATH" mv "${RAMFS_AUDIO}/panel.db" "$DB_PATH"
echo "Done." echo "Done."
echo "" echo ""


Loading…
Cancel
Save