auto-sync: 2026-05-09 21:50:01
This commit is contained in:
56
tasks/enduro-trails/prototype/scripts/download_srtm_all7.sh
Normal file
56
tasks/enduro-trails/prototype/scripts/download_srtm_all7.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
# Download all SRTM tiles for Central Federal District + Chuvashia
|
||||
# Using curl with retry on connection errors
|
||||
|
||||
SRTM_DIR="/home/slin/enduro-trails/data/srtm"
|
||||
mkdir -p "$SRTM_DIR"
|
||||
cd "$SRTM_DIR"
|
||||
BASE_URL="https://s3.amazonaws.com/elevation-tiles-prod/skadi"
|
||||
|
||||
TILES=(
|
||||
N55E037 N55E038 N55E039 N55E040
|
||||
N54E037 N54E038 N54E039 N54E040
|
||||
N53E038 N53E039 N53E040 N53E041
|
||||
N52E038 N52E039 N52E040 N52E041
|
||||
N56E037 N56E038 N56E039 N56E040
|
||||
N57E037 N57E038 N57E039 N57E040
|
||||
N58E037 N58E038 N58E039 N58E040
|
||||
N59E038 N59E039 N59E040 N59E041
|
||||
N60E040 N60E041 N60E042
|
||||
N54E042 N54E043 N54E044 N54E045
|
||||
N53E042 N53E043 N53E044 N53E045
|
||||
N52E042 N52E043 N52E044 N52E045
|
||||
N51E038 N51E039 N51E040 N51E041
|
||||
N50E038 N50E039 N50E040 N50E041
|
||||
N55E047 N55E048 N55E049 N55E050
|
||||
N54E047 N54E048 N54E049 N54E050
|
||||
N56E047 N56E048 N56E049 N56E050
|
||||
)
|
||||
|
||||
for tile in "${TILES[@]}"; do
|
||||
lat="${tile:1:2}"
|
||||
url="${BASE_URL}/${lat}/${tile}.hgt.gz"
|
||||
|
||||
if [ -f "${tile}.hgt" ]; then
|
||||
echo "SKIP ${tile}"
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "DL ${tile}"
|
||||
# Download with retry
|
||||
HTTP_CODE=$(curl -s -o "${tile}.hgt.gz" -w "%{http_code}" --max-time 90 --retry 3 --retry-delay 2 "$url")
|
||||
if [ "$HTTP_CODE" = "200" ] && [ -s "${tile}.hgt.gz" ]; then
|
||||
gunzip -f "${tile}.hgt.gz"
|
||||
if [ -f "${tile}.hgt" ]; then
|
||||
echo "OK ${tile}"
|
||||
else
|
||||
echo "FAIL ${tile} (gunzip failed)"
|
||||
fi
|
||||
else
|
||||
echo "FAIL ${tile} (HTTP ${HTTP_CODE})"
|
||||
rm -f "${tile}.hgt.gz"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Total .hgt files: $(ls *.hgt 2>/dev/null | wc -l)"
|
||||
38
tasks/enduro-trails/prototype/scripts/upload_and_run7.js
vendored
Normal file
38
tasks/enduro-trails/prototype/scripts/upload_and_run7.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
const fs = require('fs');
|
||||
const { Client } = require('ssh2');
|
||||
|
||||
const scriptContent = fs.readFileSync('/home/node/.openclaw/workspace/tasks/enduro-trails/prototype/scripts/download_srtm_all7.sh', 'utf8');
|
||||
const conn = new Client();
|
||||
|
||||
conn.on('ready', () => {
|
||||
console.log('SSH connected. Uploading script...');
|
||||
conn.sftp((err, sftp) => {
|
||||
if (err) { console.error('SFTP error:', err); conn.end(); return; }
|
||||
const stream = sftp.createWriteStream('/home/slin/enduro-trails/data/download_srtm7.sh');
|
||||
stream.end(scriptContent);
|
||||
stream.on('close', () => {
|
||||
console.log('Script uploaded. Starting background download...');
|
||||
conn.exec('chmod +x /home/slin/enduro-trails/data/download_srtm7.sh && nohup bash /home/slin/enduro-trails/data/download_srtm7.sh > /home/slin/enduro-trails/data/srtm_download7.log 2>&1 & echo "PID=$!"', (err, stream) => {
|
||||
if (err) { console.error('Exec error:', err); conn.end(); return; }
|
||||
let out = '';
|
||||
stream.on('data', d => out += d);
|
||||
stream.on('close', () => {
|
||||
console.log('Started:', out.trim());
|
||||
conn.end();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
conn.on('error', (err) => {
|
||||
console.error('SSH error:', err.message);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
conn.connect({
|
||||
host: '82.22.50.71',
|
||||
username: 'slin',
|
||||
password: 'motoZ@yaz2010',
|
||||
readyTimeout: 30000
|
||||
});
|
||||
Reference in New Issue
Block a user