Post di comandi e script sviluppati dagli utenti

10 views
Skip to first unread message

Francesco Danuso

unread,
Feb 18, 2012, 4:30:43 AM2/18/12
to SEMoLa
Salve a tutti.
Impiegare questa discussione per presentare comandi e script
sviluppati con l'ambiente SEMoLa.
Francesco
Message has been deleted

Francesco Danuso

unread,
Feb 23, 2012, 7:49:07 AM2/23/12
to SEMoLa
Esempio di script per il calcolo del fotoperiodo.
Procedura:
1) aprire SEMola;
2) impostare la cartella di lavoro su una in cui sia presente un
dataset di dati meteo giornalieri in formato csv;
3) caricare il file (. use nomefile.csv)
4) Copiare lo script qui sotto nella sotto cartella \scripts della
cartella di lavoro, con il nome daylen.cmf;
5) menu file-update
6) eseguire: . daylen fotop 46.2 doy (fotop è il nome che vogliamo
dare alla variabile fotoperiodo; 46.2 la latitudine e doy il nome
della variable che nel dataset contiene il nome dell'anno)
7) . plot fotop doy

' --------------------------------------------------------------
' Daylen.cmf
' Daylength (hours) calculation from day of the year (DOY)
' This script requires 3 arguments:
' %1% = name of the daylength variable to be generated
' %2% = latitude (degrees and decimals)
' %3% = day of the year variable (1-365)
' Example: . daylen fotop 46.1 doy
'
' Ref: KEISLING T.C., 1982 (Agron.J.)
' Aut: F.Danuso (20/11/95)
scalar h3=pi/180
scalar LATR=%2%*h3 ' converts to
radians
scalar al=90*h3 ' zenithal
distance (rad)
gen M=(0.9856*%3%-3.251)*h3 ' mean sun
anomaly (rad)
gen l6=M+h3*(1.916*SIN(M)+0.02*SIN(2*M)+282.565)
gen dec=0.39779*SIN(l6) ' sine
obliquity
replace dec=ATN(dec/SQRT(1-dec*dec)) ' declination
(rad)
gen zk=(SIN(LATR)/COS(LATR))*(SIN(dec)/COS(dec))
gen fot=COS(al)/(COS(LATR)*COS(dec))-zk
gen %1%=2/15*(-ATN(fot/SQRT(1-fot*fot))/h3+90) ' daylength
(hours)
header varlab %1% Fotoperiodo (%1%)(h)
drop M l6 dec zk fot
display _f "> variable %1% created"
'
------------------------------------------------------------------------

Saluti
FD

Francesco Danuso

unread,
Feb 24, 2012, 4:19:23 AM2/24/12
to SEMoLa
Script che calcola le ore utili giornaliere di volo per le api.
Richiede che sia caricato un file di dati meteo orari.
Questo file deve contenere le variabili Doy (giorno dell'anno), Ora
(ora del giorno da 1-24), Fotop (fotoperiodo, ore), Temp (temperatura
media oraria, °C) e Rain (pioggia oraria, mm).
Si potrebbe anche estendere lo script, aggiungendo un controllo legato
alla velocità del vento, se disponibile.
Viene salvato un file nominato OreVolo.csv.
Notare la "potenza" del comando collapse!
Saluti
FD


' === calcolo ore utili di volo ====
gen Alba=12-fotop/2
gen Tram=12+fotop/2
gen Oraluce=1 if Ora>=Alba&Ora<Tram
gen OreVolo=1 if Oraluce&Temp>15&Rain=0
collapse by(doy) sum(OreVolo,Rain) mean(Temp) saving(OreVolo.csv)

Reply all
Reply to author
Forward
0 new messages