1020/5000I am using a Young 86000 anemometer on a CR1000, and I am having the following problem: overall measurements are correct, but sometimes measurements are incorrect, with values above 75 m / s, even without apparent wind. I am using a 15 second scan. For wind measurements, the table collects the instantaneous value, direction and maximum wind (in one hour). Most often the error occurs at maximum wind, when it occurs at snapshot, the direction comes as NAN. In all there are 26 weather stations with this same problem. I have tried some solutions, such as setting values above 75 = NAN, but other bad values end up being measured at some point. Another curiosity, these errors usually occur at sequential times. An example of a station that has this problem (without the threshold I set at some 75 = NAN) is the one with Goes ID B0428FD8.
It follows programming that I am using, which even with some changes, still presenting such a problem.
Const Scanrate = 15
'Const Sens = 15.00
'******************************************
'Publicacao do ID
Public ID As String *8
'Publicacao das variaveis do Resultado
Public ResultadoGoes
'Publicacao do Dia e Horario
Public rTime(9)
Public Date As String *10
Public Time As String *10
Alias rTime(1) = Year
Alias rTime(2) = Month
Alias rTime(3) = DOM
Alias rTime(4) = Hour
Alias rTime(5) = Minute
Alias rTime(6) = Second
'Publicacao da tensao da bateria
Public BattV
Public BattV_s As String *7
Public Dest_BattV As Float
Units BattV = Volts
'Publicacao da temp interna
Public PTemp_C
Public PTemp_C_s As String *7
Public Dest_PTemp_C As Float
Units PTemp_C = Deg C
'Publicacao Umidade Interna da Caixa
Public Enc_RH
Public enc_rh_s As String *7
'Publicacao Chuva
Public Rain
Public Dest_Rain As Float
Public Rain_s As String *7
Units Rain = mm
'Publicacao Temperaura do ar
Public AirTc
Public AirTc_Mx As String *7
Public Dest_AirTc_Mx As Float
Public AirTC_Mm As String *7
Public Dest_AirTc_Mn As Float
Public AirTc_s As String *7
Units AirTc = Deg C
'Publicacao da Umidade do AR
Public RH
Public RH_s As String *7
Public RH_Mx As String *7
Public RH_Mn As String *7
Public Dest_RH_Mx As Float
Public Dest_RH_Mn As Float
Units RH = %
'Publicacao do Ponto de Orvalho
Public DewPt
Public DewPt_Mn As String *7
Public DewPt_Mx As String *7
Public Dest_DewPt_Mn
Public Dest_DewPt_Mx
Public DewPt_s As String *7
'Publicacao Pressao Atmosferica
Public BP_mbar_s As String *7
Public BP_mbar
'Publicacao Velocidade e Direcao do Vento
Public RMY86000 (4) As Float
Public Serial86000 As String *25
Public Wind_Speed_Mx As String *7
Public Dest_Wind_Speed_Medium As Float
Public Dest_Wind_Speed_Mx As Float
Public Dest_WindSpeed As Float
Public WindSpeed_s As String *7
Public Dest_Wind_Direction As Float
Public Wind_Direction_s As String *7
Alias RMY86000(2) = Wind_Speed
Alias RMY86000(3) = Wind_Direction
Alias RMY86000(4) = Status86004
Units Wind_Speed = m/s
Units Wind_Direction = Deg
'Publicacao da Temperatura do Solo
'Sensor a 5 cm
Public CS65X(6)
Alias CS65X(1) = VWC
Units VWC = %
Public Dest_VWC As Float
Public VWC_s As String *7
Alias CS65X(3) = T_05cm
Public T_05cm_s As String *7
Units T_05cm = Deg C
'Sensor a 20 cm
Public CS65X_2(6)
Alias CS65X_2(1) = VWC_2
Units VWC_2 = %
Public Dest_VWC_2 As Float
Public VWC_s2 As String
Public T_20cm_s As String *7
Alias CS65X_2(3) = T_20cm
Units T_20cm = Deg C
'Sensor a 50 cm
Public CS65X_3(6)
Alias CS65X_3(1) = VWC_3
Units VWC_3 = %
Public Dest_VWC_3 As Float
Public VWC_s3 As String
Alias CS65X_3(3) = T_50cm
Public T_50cm_s As String *7
Units T_50cm = Deg C
'Publicacao Radiacao Solar
Public SlrKJ_2
Public SlrkW_2
Public Dest_Slrkj As Float
Public SlrKJ_s As String *7
Units SlrKJ_2=KJ/m^2
'Publicacao Saida de Dados
Public Saida As String *7
'Publicacao dos espacos
Public Space1 As String *2
Public Space2 As String *2
Public Space3 As String *2
Public Space4 As String *2
Public Space5 As String *2
Public Space6 As String *2
Public Space7 As String *2
Public Space8 As String *2
Public Space9 As String *2
Public Space10 As String *2
Public Space11 As String *2
Public Space12 As String *2
Public Space13 As String *2
Public Space14 As String *2
Public Space15 As String *2
Public Space16 As String *2
Public Space17 As String *2
Public Space18 As String *2
Public Space19 As String *2
Public Space20 As String *2
Public Space21 As String *2
Public Space22 As String *2
Public Space23 As String *2
Public Space24 As String *2
Public Space25 As String *2
Public Space26 As String *2
Public Space27 As String *2
'*************************************************
DataTable(GOESENVIO_ABAETE,True,-1)
DataInterval(0,1,Hr,10)
'Variaveis para analise dos parametros do ID
Sample (1,ID,String)
Sample (1,Space1,String)
'Variaveis para analise dos parametros da DATE
Sample (1,Date,String)
Sample (1,Space2,String)
'Variaveis para analise dos parametros da TIME
Sample (1,Time,String)
Sample (1,Space3,String)
'Variaveis para analise dos parametros da BATERIA
Sample(1,BattV_s,String)
Sample (1,Space4,String)
'Variaveis para analise dos parametros do sensor de TEMPERATURA INTERNA
Sample (1,PTemp_C_s,String)
Sample (1,Space5,String)
'Variaveis para analise dos parametros do sensor de UMIDADE INTERNA DA CAIXA
Sample(1,enc_rh_s,String)
Sample(1,Space6,String)
'Variaveis para analise dos parametros do pluviometro - CHUVA
Sample(1,Rain_s,String)
Sample(1,Space7,String)
'Variaveis para analise dos parametros de temperatura do ar
Sample(1,AirTc_s,String)
Sample (1,Space8,String)
Sample(1,AirTc_Mx,String)
Sample (1,Space9,String)
Sample(1,AirTC_Mm,String)
Sample (1,Space10,String)
'Variaveis para analise dos parametros de temperatura do ar
Sample(1,RH_s,String)
Sample (1,Space11,String)
Sample(1,RH_Mx,String)
Sample (1,Space12,String)
Sample(1,RH_Mn,String)
Sample (1,Space13,String)
'Variaveis para analise dos parametros de ponto de orvalho
Sample(1,DewPt_s,String)
Sample(1,Space14,String)
Sample(1,DewPt_Mx,String)
Sample(1,Space15,String)
Sample(1,DewPt_Mn,String)
Sample(1,Space16,String)
'Variaveis para analise dos parametros do sensor de pressao barometrica
Sample(1,BP_mbar_s,String)
Sample(1,Space17,String)
'Variaveis para analise dos parametros do sensor de velocidade de direcao do vento ultrassonico
Sample (1,WindSpeed_s,String)
Sample (1,Space18,String)
Sample (1,Wind_Direction_s,String)
Sample (1,Space19,String)
Sample (1,Wind_Speed_Mx,String)
Sample (1,Space20,String)
'Variaveis para analise dos parametros do sensor de temperatura do solo e Umidade do solo
'***************Temperatura do Solo***************'
'Temperatura para 05 cm
Sample(1,T_05cm_s,String)
Sample (1,Space21,String)
'Temperatura para 20 cm
Sample(1,T_20cm_s,String)
Sample(1,Space22,String)
'Temperatura para 50 cm
Sample(1,T_50cm_s,String)
Sample(1,Space23,String)
''***************Umidade do Solo***************'
Sample(1,VWC_s,String)
Sample(1,Space24,String)
Sample(1,VWC_s2,String)
Sample(1,Space25,String)
Sample(1,VWC_s3,String)
Sample(1,Space26,String)
'Variaveis para analise dos parametros do sensor de radicao global
Sample(1,SlrKJ_s,String)
Sample (1,Space27,String)
'Caracter de Saida
Sample (1,Saida,String)
EndTable
'DataTable(teste,True,-1)
'DataInterval(0,30,Sec,10)
'Variaveis para analise dos parametros de temperatura do ar
'Sample(1,AirTc_s,String)
'Sample(1,AirTc_Mx,String)
'Sample(1,AirTC_Mm,String)
'Variaveis para analise dos parametros de temperatura do ar
'Sample(1,RH_s,String)
'Sample(1,RH_Mx,String)
'Sample(1,RH_Mn,String)
'EndTable
'*************************************************
BeginProg
Scan(Scanrate,Sec,1,0)
SerialOpen (Com4,9600,0,0,10000)
'**************************************************************************************
'ID
ID = "B042CCD2"
'SAIDA
Saida = "/////"
'Espaco
Space1 = " "
Space2 = " "
Space3 = " "
Space4 = " "
Space5 = " "
Space6 = " "
Space7 = " "
Space8 = " "
Space9 = " "
Space10 = " "
Space11 = " "
Space12 = " "
Space13 = " "
Space14 = " "
Space15 = " "
Space16 = " "
Space17 = " "
Space18 = " "
Space19 = " "
Space20 = " "
Space21 = " "
Space22 = " "
Space23 = " "
Space24 = " "
Space25 = " "
Space26 = " "
Space27 = " "
'**************************************************************************************
'DATA E HORARIO
RealTime (rTime)
Date = FormatLong(rTime(3),"%02d")&FormatLong(rTime(2),"%02d")&rTime(1)
Time = FormatLong(rTime(4),"%02d")&FormatLong(rTime(5),"%02d")&FormatLong(rTime(6),"%02d")
'TENSAO DA BATERIA
Battery(BattV)
AvgRun (Dest_BattV,1,BattV,240)
BattV_s = FormatFloat(Dest_BattV,"%05.01f")
'TEMPERATURA INTERNA
PanelTemp(PTemp_C,_60Hz)
AvgRun (Dest_PTemp_C,1,PTemp_C,240)
PTemp_C_s = FormatFloat(Dest_PTemp_C,"%05.01f")
'UMIDADE INTERNA DA CAIXA
VoltSe(Enc_RH,1,mV2500,9,1,0,_60Hz,0.1,0)
If Enc_RH>100 AND Enc_RH<103 Then Enc_RH=100
enc_rh_s = FormatFloat (Enc_RH,"%05.01f")
'CHUVA EM MM
PulseCount(Rain,1,1,2,0,0.2,0)
TotalRun (Dest_Rain,1,Rain,240)
Rain_s = FormatFloat (Dest_Rain,"%05.01f")
'TEMPERATURA DO AR
VoltSe(AirTc,1,mV2500,1,0,0,_60Hz,0.1,-40)
AirTc_s = FormatFloat (AirTc,"%04.01f")
MaxRun (Dest_AirTc_Mx,1,AirTc,240)
AirTc_Mx = FormatFloat (Dest_AirTc_Mx,"%04.01f")
MinRun (Dest_AirTc_Mn,1,AirTc,240)
AirTC_Mm = FormatFloat (Dest_AirTc_Mn,"%04.01f")
'UMIDADE DO AR
VoltSe(RH,1,mV2500,2,0,0,_60Hz,0.1,0)
If RH>100 AND RH<103 Then RH=100
RH_s = FormatFloat (RH,"%05.01f")
MaxRun (Dest_RH_Mx,1,RH,240)
RH_Mx = FormatFloat (Dest_RH_Mx,"%05.01f")
MinRun (Dest_RH_Mn,1,RH,240)
RH_Mn = FormatFloat (Dest_RH_Mn,"%05.01f")
'PONTO DE ORVALHO
DewPoint (DewPt,AirTc,RH)
DewPt_s = FormatFloat (DewPt,"%04.01f")
MaxRun (Dest_DewPt_Mx,1,DewPt,240)
DewPt_Mx = FormatFloat (Dest_DewPt_Mx,"%04.01f")
MinRun (Dest_DewPt_Mn,1,DewPt,240)
DewPt_Mn = FormatFloat (Dest_DewPt_Mn,"%04.01f")
'PRESSAO ATMOSFERICA
SDI12Recorder(BP_mbar,1,"1","M!",1,0,-1)
BP_mbar_s = FormatFloat (BP_mbar,"%06.01f")
'DIRECAO E VELOCIDADE DO VENTO
SerialOut (Com4,"M0!"+ CHR(13)," ",0,100)
SerialIn (Serial86000,Com4,10,CHR(13),200)
SplitStr (RMY86000(),Serial86000," ",4,0)
SerialFlush (Com4)
Dest_Wind_Direction = RMY86000(3)
'If Dest_Wind_Direction = NAN Then Dest_Wind_Direction = Dest_Wind_Direction_Med Descobrir como calcular
Wind_Direction_s = FormatFloat (Dest_Wind_Direction,"%05.01f")
Dest_WindSpeed = RMY86000(2)
If Dest_WindSpeed > 75 Then Dest_WindSpeed = NAN
'If Dest_WindSpeed > 8,9 AND < 9,1 Then Dest_WindSpeed = NAN
AvgRun (Dest_Wind_Speed_Medium,1,Dest_WindSpeed,4)
If Dest_WindSpeed = NAN Then Dest_WindSpeed = Dest_Wind_Speed_Medium
WindSpeed_s = FormatFloat (Dest_WindSpeed,"%05.01f")
MaxRun (Dest_Wind_Speed_Mx,1,Dest_WindSpeed,240)
Wind_Speed_Mx= FormatFloat (Dest_Wind_Speed_Mx,"%05.01f")
'TEMPERATURA E UMIDADE DO SOLO
'Sensor para 05 cm
SDI12Recorder(CS65X(),3,"1","M1!",1,0,-1)
Dest_VWC = CS65X(1)
VWC_s = FormatFloat (Dest_VWC,"%05.01f")
T_05cm = CS65X(3)
T_05cm_s = FormatFloat (T_05cm,"%05.01f")
'Sensor para 20 cm
SDI12Recorder(CS65X_2(),3,"2","M1!",1,0,-1)
Dest_VWC_2 = CS65X_2(1)
VWC_s2 = FormatFloat (Dest_VWC_2,"%05.01f")
T_20cm = CS65X_2(3)
T_20cm_s = FormatFloat (T_20cm,"%05.01f")
'Sensor para 50 cm
SDI12Recorder(CS65X_3(),3,"3","M1!",1,0,-1)
Dest_VWC_3 = CS65X_3(1)
VWC_s3 = FormatFloat (Dest_VWC_3,"%05.01f")
T_50cm = CS65X_3(3)
T_50cm_s = FormatFloat (T_50cm,"%05.01f")
'RADIACAO SOLAR Atualizar para o CL200
VoltDiff(SlrkW_2,1,mV7_5,3,True,0,_60Hz,1,0)
If SlrkW_2<0 Then SlrkW_2=0
'Transformando de MegaJoule para KiloJoule
SlrkW_2 = (SlrkW_2*200)/1000
SlrKJ_2 = (SlrkW_2*Scanrate)
TotalRun (Dest_Slrkj,1,SlrKJ_2,240)
SlrKJ_s = FormatFloat (Dest_Slrkj,"%06.01f")
'CARACTER DE SAIDA
Saida = "//////"
'TABELA DE TRANSMISSAO
CallTable GOESENVIO_ABAETE
'CallTable teste
If TimeIntoInterval (0,1,Hr) Then
GOESData (ResultadoGoes,GOESENVIO_ABAETE,1,0,1)
End If
NextScan
'SlowSequence
'Scan(17,min,1,0)
'SW12(0)
'Delay(0,5,sec)
'SW12(1)
'NextScan
EndProg
Analyzing the data, I realized that the wrong wind values do not exceed 359. Probably for some reason he is reading the direction as speed. But this only occurs a few times.