Una prova per rimuovere la componente stagionale da una serie tempo usando la libreria StatsModels di Python
In alto dati originali. al centro trend, seguend dati periodici stimati ed in basso calcolo dei residui
i
Una prova per rimuovere la componente stagionale da una serie tempo usando la libreria StatsModels di Python
In alto dati originali. al centro trend, seguend dati periodici stimati ed in basso calcolo dei residui
i
In ufficio stanno spingendo per utilizzare docker per ogni applicazione
Per rendere lo sviluppo piu' tracciabile viene richiesto che oltre al docker file vi sia anche il file yaml di docker compose (in pratica le impostazioni del container che si dovrebbero passare sulla linea di comando sono scritti nel file compose.yaml)
con build . (punto) viene indicato di usare il dockerfile compreso nello stesso folder
Per lanciare si usa
docker compose up -d
alla fine della costruzione dell'immagine viene fatto in automatico lo start
Si accede quindi con
docker exec -it Omnia bash
si termina con
docker compose stop
Qualche settimana fa un conoscente mi ha mandato um video di una corona di frana sul monte Javello legata all'evento piovoso del 6 novembre
Ho provato a vedere se riuscivo a vedere l'estensione della frana dalle immagini di Sentinel 2. Sono riuscito ad inviduare un aspetto interessante ovvero che sul versante era presente una zona disboscata che e' stata tagliata nel 2023 ed i corrispondenza di questa area
![]() |
| Immagine dell'area disboscata |
![]() |
| Prima del taglio forestale |
![]() |
| dopo il taglio forestale |
Come si puo' vedere dopo l'evento l'impluvio risulta essere interessato da trasporto solido (e' la striscia bianca che scende verso valla a circa meta' dell'immagine leggermente a sinistra)
Nonostante cio' in ottico della frana nemmeno l'ombra. Ho provato, cosa che non avevo mai provato, ad utilizzare Sentinel 1.
Per fare change detection con immagini radar si devono cercare immagini appartenenti alla stessa orbita. il primo tentativo e' fallito perche' il sensore illuminava il versante sbagliato del M.Ferrato e quindi non si mostravano modifiche al versante
Ho preso quindi la coppia
Ciascuna immagine e' stata trattata con in SNAP con
Per il change detection sono utilizzati diversi algoritmi (sia basati su dati SLC che GRD) come . Ho provato il metodo piu' semplice che corrisponde al fare il rapporto (non la differenza) tra le bande Beta0 prima e dopo l'evento
![]() |
| rapporto beta0 |
![]() |
| scontornando manualmente le aree |
in effetti sembra che Sentinel 1 riesca a verificare delle zone di potenziale frana dove Sentinel 2 non riusciva a vedere. Spero di riuscire a trovare il tempo per un sopralluogo di persona
1) Strategies for landslide detection using open-access synthetic aperture radar backscatter change in Google Earth Engine Alexander L. Handwerger , Shannan Y. Jones , Pukar Amatya Hannah R. Kerner , Dalia B. Kirschbaum , and Mong-Han Huang https://doi.org/10.5194/nhess-2021-283
2) Exploring event landslide mapping using Sentinel-1 SAR backscatter products Michele Santangelo, Mauro Cardinali, Francesco Bucci, Federica Fiorucci, Alessandro Cesare Mondini Geomorphology Volume 397, 15 January 2022, 108021
Volevo provare l'oscilloscopio DS0152 e visto che ho in prestito un geofono ho guardato il segnale in uscita. Francamente pensavo che il sensore facesse uscire poche decine di millivolt ma come si vede dalla foto si passa da qualche decina di Volts fino a qualche Volt (ho letto anche fino a 9V ma con sollecitazioni meccaniche che non sono ragionevoli per un geofono)
per mandare in auto esecuzione lo script di streaming si edita il file /mnt/system/auto.sh aggiungendo
/mnt/data/install/CviIspTool.sh 64M
Non riesco a vedere lo stream con VLC su Linux ma usando mpv non ci sono problemi
mpv --no-cache --untimed --no-demuxer-thread --video-sync=audio --vd-lavc-threads=1 rtsp://192.168.42.1:8554/stream0
Un esempio di Dockerfile complesso per R 3.6
Per usare ROracle in R v.4 si deve compilare il codice scaricando il pacchetto ROracle_1.3-1.1.tgz e istantclient base ed sdk da Oracle https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
export PATH="$PATH:/opt/oracle/instantclient_21_12"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/oracle/instantclient_21_12"
R CMD INSTALL --configure-args='--with-oci-lib=/opt/oracle/instantclient_21_12/ --with-oci-inc=/opt/oracle/instantclient_21_12/sdk/include' ROracle_1.3-1.1.tar.gz
sudo sh -c "echo /opt/oracle/instantclient_21_12 > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
Per effettuare la connesione da R
All'avvio del portatile mi sono accorto che il comando top riportava un processo chiamato tracker che occupava praticamente gran parte dei cicli di CPU
Non lo sapevo ma cercando ho scoperto che questo e' un servizio di indicizzazione file di Gnome
Per disabilitarlo non e' banalissimo
systemctl --user mask tracker-extract-3.service tracker-miner-fs-3.service tracker-miner-rss-3.service tracker-writeback-3.service tracker-xdg-portal-3.service tracker-miner-fs-control-3.serviceQualche anno fa avevo provato ad addestrare una rete neurale per il riconoscimento di foraminiferi con risultati diciamo mediocri
Ho visto che i migliori risultati non si ottengono partendo da una rete ex-novo ma riaddestrando reti gia' elaborate. In questo caso ho provato ad addestrare Yolo 8 con il dataset dei foraminiferi
La prima prova la ho fatto, anche con ottimi risultati, utilizzando il cloud di Roboflow ma volevo una soluzione da fare girare on the edge
Per prima cosa ho creato un virtualenv in Python
I dati sono inclusi in un folder in cui ci sono le sottodir test,train e valid in cui sono in ciascuna ci sono inclusi i folder images e labels
Per creare le labels ho utilizzato labelImg. Avendo problemi con l'installazione ho utilizzato il docker a questo link
Si deve selezionare il folder dove sono contenute le immagini, il folder dove saranno salvati i file txt in cui sono salvate le annotations, il tipo di annotation (di default viene indicato PascalVOC ma deve andare a Yolo) ed in View conviene indicare autosave
Nel folder alla radice deve essere create un file data.yaml in cui sono indicati i percorsi dei folder delle immagini, il numero di classi (4) ed i nomi delle classi
la configurazione del proxy per effettuare un pull di un container docker si trova in
/etc/systemd/system/docker.service.d/http-proxy.conf
ed ha una sintassi del tipo
per rendere effettive le modifiche
systemctl stop docker
systemctl stop docker.socket
systemctl daemon-reload
Per programmare la Milk-V Duo tramite cross compiling su desktop si puo' usare l'SDK
https://github.com/milkv-duo/duo-examples
una volta decompilato il pacchetto si lancia envsetup.sh che automaticamente scarica il compilatore
Altrimenti si puo' cross compilare tramite Go
Come compilatori sulla scheda si possono usare python (e' presente 3.9.5) oppure tinyGcc
Per interagire con l'hardware si puo' usare
1) in Python la libreria pinpong Ci sono una tonnellata di esempi
2) in C la libreria WiringX https://wiringx.org/
3) in Go con la libreria gpiod https://github.com/pavelanni/milkv-duo-experiments
Per creare l'avvio automatico al boot di uno script si deve creare il file auto.sh in /mnt/data/ e si inseriscono i comandi che si vuole mandare in autoesecuzione
mkdir /mnt/data
Immagine RGB Sentinel 2 del 4 novembre 2023 che mostra l'esondazione delle acque del Fosso Reale a seguito rottura d'argine nell'area di Case Passerini
Sto provando la scheda Milk-D Duo con processore RiscV64
La scheda un processore dual core. Sul core primario puo' girare un sistema operativo Linux multi task mentre sul secondo FreeRtos. I due sistema comunicano tramite una porta seriale un po' come funzionava la scheda Intel Galileo
Come immagine disco sto usando quella della ditta ma si pu' montare anche Arch (Debian non ha ancora il supporto di rete e si deve accedere tramite connessione seriale)
Su Linux e' piuttosto facile interagire con la scheda perche' se si collega la porta USB C viene montata in automatico un porta di rete tramite RNDIS all'indirizzo 192.168.42.1 (la scheda rilascia in DHCP un indirizzo della classe 192.168.42.x)
enxf611f7e3617d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.42.18 netmask 255.255.255.0 broadcast 192.168.42.255
inet6 fe80::f411:f7ff:fee3:617d prefixlen 64 scopeid 0x20<link>
ether f6:11:f7:e3:61:7d txqueuelen 1000 (Ethernet)
RX packets 242 bytes 29688 (28.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 311 bytes 43373 (42.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisi
ssh root@192.168.42.1
scp -O ./main root@192.168.42.1:/root/
Ho trovato in cassetto dell'ufficio sepolto da qualche mio predecessore un Trimble GeoXT, un dispositivo GPS che usavo all'Universita'. Era una macchina estremamente costosa che includeva un palmare con Pocket PC
Mi e' stato detto che il GPS era stato accantonato perche' non reggeva la batteria....ovviamente la mia domanda e' stata..si potra' usare nel 2023 un dispositivo del 2005
Quarto aspetto: non sono riuscito a connettere la WiFi all'hotspot. Le autenticazioni sono WEP (ovviamente ...siamo nel 2004) e WPA. Provando WPA non riesco a connettermi con Access Point moderni
A questo punto il dispositivo funziona in acquisizione??
Premesso che l'antenna e' solo una L1 a 12 canali che puo' essere postprocessata (e quindi non so quanta valga la pena perderci tempo avendo a disposizione delle antenne L1+L2 a costo minore e prestazione migliore) i primi tentativi di salvare i dati su TerraSync sono risultati vani.
Il dispositivo era molto lento nell'aggancio dei satelliti ma questo e' abbastanza ovvio dato che usa un almanacco del 2004. Una volta acquisito il fix Terrasync si rifiutava di salvare i dati per un problema sull'orologio
Ho modificato a mano l'orologio di Windows CE. A questo punto il fix e' stato molto piu' veloce ma persisteva il problema. Controllando ho visto che Terrasync riportava automaticamente l'orologio di sistema al 2004
La soluzione (trovata su un forum) e' stata quella di sincronizzare l'ora tramite ActiveSync (in pratica acquisendo la data dal PC Desktop), poi lanciare TerraSync. A questo punto tutto inizia a funzionare in modo corretto
Ne vale la pena??
Per funzionare funziona ma c'e' da dire che i dati di fase per il postprocessing vengono salvati nel formato binario di Trimble e quindi c'e' da fare un ulteriore passaggio per passarli in Rinex peraltro con un software ConverttoRinex che attualmente non riesco a farlo funzionare in macchina virtuale (problemi con le librerie DotNet)
Nonostante sia stata dichiarata legacy la mia ML-2160 continua a stampare.
apt install printer-driver-splix
In ufficio oramai una applicazione non puo' andare in produzione se non e' in in container...anche se e' occupa pochissimo spazio disco...il che vuol dire che si deve cercare di ottimizzare l'occupazione dello spazio disco del container
Nel Dockerfile sottostante viene utilizzato un docker con compilatore per generare un eseguibile che sara' poi copiato in un docker minimale di produzione basato su Alpine
Non pensavo che sarei riuscito a montare le librerie NVidia su Debian (di solito usavo Ubuntu per semplicita') ma alla fine con il passare del tempo le cose sono migliorate molto anche in Debian
Per prima cosa si devono modificare i repositories per includere contrib e non-free
apt install nvidia-driver firmware-misc-nonfree
apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libglfw3-dev libgles2-mesa-dev
apt -y install nvidia-cuda-toolkit nvidia-cuda-dev
Per testare ho provato a compilare gli esempi delle CUDA libraries
Per compilare gli esempi si deve modificare il Makefile presente in ogni directory modificando
CUDA_PATH?=/usr
ed eliminando in SMS ?= tutti i valori ad esclusione di 50 e 52 (20 e 30 sono considerati obsoleti e non compilano piu', i restanti sono indicati come deprecati)
Si lancia quindi il make aggiungendo prima la GLPATH
Il problema finale e' stato che gli esempi che usano le OpenGL non riuscivano ad aprirsi mostrando l'errore code=46(cudaErrorDevicesUnavailable)
La soluzione e' quella di far precedere al comando le indicazioni
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
per lanciare Mandelbrot si usera' quindi
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./Mandelbrot
Oramai mi trovo sempre piu' spesso a litigare con il mio proxy a lavoro (telelavorando a casa questo problema nono esiste). Per effettuare il download di una immagine docker da dietro ad un proxy in Linux si deve creare il file
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
inserendo le impostazioni del proxy (settare le variabili di ambiente http_proxy non funziona)
[Service]sudo systemctl daemon-reload
sudo systemctl restart docker
Mi sono comprato un Olivetti M20 perche' e' stato il primo computer (il C64 diciamo era piu' una macchina da gioco quando ero piccolo) su cui ho lavorato in un ufficio
Il modello e' un ST e deve essere una prima serie in quanto la CPU e' sotto la tastiera e le etichette di produzione indicano novembre 1982 (la presentazione della macchina e' stata Marzo 82)
| Notare le correzioni fatte a mano sul PCB, simili a quelli che si trovano negli M24 |
Si tratta di una macchina venduta in Spagna come si vede anche dall'etichetta della manutenzione dell'unita' floppy. A proposito del drive floppy interessante vedere la calibrazione del numero di giri sul motore non a presa diretta ma tramite cinghia
ed il fatto che qualche genio ha inserito un cd rom all'interno dell'unita' floppy stesssa bloccando la meccanica (ho dovuto smontare tutto per estrarlo ma con questi computer si poteva ancora fare)
http://www.z80ne.com/m20/index
A seguito di questo post ho provato a vedere ho provato a vedere cosa accadeva ad utilizzare un modello specifico per la lingua italiana in...