diff --git a/tasks/enduro-trails/prototype/scripts/download_srtm_all6.sh b/tasks/enduro-trails/prototype/scripts/download_srtm_all6.sh new file mode 100644 index 0000000..8620fca --- /dev/null +++ b/tasks/enduro-trails/prototype/scripts/download_srtm_all6.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# Download all SRTM tiles for Central Federal District + Chuvashia +# Using curl with HTTP code check and retry + +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}" + HTTP_CODE=$(curl -s -o "${tile}.hgt.gz" -w "%{http_code}" --max-time 60 "$url") + if [ "$HTTP_CODE" = "200" ] && [ -s "${tile}.hgt.gz" ]; then + # Verify it's actually gzip + if file "${tile}.hgt.gz" | grep -q "gzip"; then + gunzip -f "${tile}.hgt.gz" + echo "OK ${tile}" + else + echo "FAIL ${tile} (not gzip, HTTP ${HTTP_CODE})" + rm -f "${tile}.hgt.gz" + 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)" diff --git a/tasks/enduro-trails/prototype/scripts/upload_and_run.js b/tasks/enduro-trails/prototype/scripts/upload_and_run.js new file mode 100644 index 0000000..4f09283 --- /dev/null +++ b/tasks/enduro-trails/prototype/scripts/upload_and_run.js @@ -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_all6.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_srtm6.sh'); + stream.end(scriptContent); + stream.on('close', () => { + console.log('Script uploaded. Starting background download...'); + conn.exec('chmod +x /home/slin/enduro-trails/data/download_srtm6.sh && nohup bash /home/slin/enduro-trails/data/download_srtm6.sh > /home/slin/enduro-trails/data/srtm_download6.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 +});