eddy_em: (Default)
[personal profile] eddy_em
"Скрестить ужа с ежом" оказалось непросто, учитывая все косяки cfitsio. Но, все-таки, получилось. Я решил этого демона не выносить в отдельную репу, а засунул в директорию внутри репы с болтвудом.
Очень много времени убил, не понимая, какого черта inotify, как только обновится файл, перестает отслеживать. А все оказалось просто: cfitsio вместо того, чтобы сделать truncate имеющегося файла (когда имени файла предваряет "!") делает unlink. Понятно, что тут inotify уже не поможет. Сделал обновление дескрипторов каждый раз, как обновится файл.
Другим косяком cfitsio было то, что целые "записи" она пишет в зипованый фитс (using fits_write_record), а вот fits_write_key не хочет — говорит, что в зипованные файлы не может.
Я все больше и больше склоняюсь к тому, что нужно свою библиотеку писать для работы с фитсами! Как лет 5 (если не больше) назад начал в ней проблемы находить, так все не покидает мысля... А еще добавить туда мой fits_filter… В общем, мечты-мечты! Если клонироваться в 10 раз (и послать половину клонов работать там, где деньги платят), то, возможно, это все и будет реализовано.

Я совсем забыл примеры привести.
Итак, если к демону болтвуда подключиться через браузер, увидим что-то вроде
humidstatTempCode=0
rainCond=1
skyMinusAmbientTemperature=-2.2
ambientTemperature=27.9
windSpeed=0.0
wetState=0
relHumid=26
dewPointTemperature=6.9
caseTemperature=42.0
rainHeaterState=0
powerVoltage=24.4
anemometerTemeratureDiff=24.9
wetnessDrop=2
wetnessAvg=157
wetnessDry=152
daylightADC=443
tmsrment=1489768832

В его документации названия полей объяснены, в последнем же поле я поместил время измерения (чтобы было понятно, насколько актуальны данные).
Ну, и очень длинная шапка FITS-файла, который получается при сохранении темой этой записи:
SIMPLE  =                    T / file does conform to FITS standard             
BITPIX  =                   16 / number of bits per data pixel                  
NAXIS   =                    2 / number of data axes                            
NAXIS1  =                  640 / length of data axis 1                          
NAXIS2  =                  480 / length of data axis 2                          
EXTEND  =                    T / FITS dataset may contain extensions            
COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy
COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H 
BZERO   =                32768 / offset data range to that of unsigned short    
BSCALE  =                    1 / default scaling factor                         
FILE    = 'output.fits.gz'     / Input file original name                       
ORIGIN  = 'SAO RAS '           / organization responsible for the data          
OBSERVAT= 'Special Astrophysical Observatory, Russia' / Observatory name        
DETECTOR= 'Kodak KAI-340'      / Detector model                                 
INSTRUME= 'SBIG All-sky 340C'  / Instrument                                     
PXSIZE  = '7.4 x 7.4'          / Pixel size in um                               
FIELD   = '180 degrees'        / Camera field of view                           
IMAGETYP= 'object  '           / Image type                                     
DATAMAX =                65535 / Max possible pixel value                       
DATAMIN =                    0 / Min possible pixel value                       
STATMAX =                63539 / Max pixel value                                
STATMIN =                 1585 / Min pixel value                                
STATAVR =                42204 / Average pixel value                            
STATSTD =                17002 / Standart deviation of pixel value              
EXPTIME =              0.13738 / actual exposition time (sec)                   
DATE    = '2017-03-17T16:33:03' / Creation date (YYYY-MM-DDThh:mm:ss, UTC)      
UNIXTIME=           1489768349 / exposition starts at 17/03/2017, 16:32:29 (UTC)
DATE-OBS= '2017/03/17'         / DATE OF OBS. (YYYY/MM/DD, local)               
START   = '19:32:29'           / Measurement start time (hh:mm:ss, local)       
OBJECT  = 'sky     '           / Object name                                    
HSCODE  =                    0 / hum. and ambient temp. sensor code (0 - OK)    
RAINCOND=                    1 / rain sensor conditions (1 - no, 2 - rain)      
TSKYAMB =                   -2 / Tsky-Tamb (degrC)                              
TAMB    =                 27.7 / ambient temperature (degrC)                    
WIND    =                    0 / wind speed (m/s)                               
WETSTATE=                    0 / wet sensor value (0 - dry, 1 - wet)            
HUMIDITY=                   27 / relative humidity in %                         
DEWPOINT=                  7.1 / dew point temperature (degrC)                  
TCASE   =                 42.9 / thermopile case temperature (degrC)            
RHTRSTAT=                    0 / state of rain sensor heater (1 - OK)           
PWRVOLT =                 24.4 / power voltage value (V)                        
ANEMTDIF=                 24.9 / anemometer tip temperature difference(degrC)   
WETDROP =                    2 / rain drops count for this cycle                
WETAWG  =                  157 / wetness osc. count diff. from base dry value   
WETDRY  =                  152 / wetness osc. dry count diff. from base value   
DAYADC  =                  445 / daylight photodiode raw A/D output  
TBOLTWD =           1489768366 / Boltwood's sensor measurement time (UNIX TIME)

Исследовать, как в наших местах из этой кучи данных можно определить процент облачности, я пока не собираюсь ­— других дел полно. Но, судя по публикациям, это очень неоднозначная зависимость. Обычно в лучшем случае из этих данных можно извлечь характеристики: "сильно облачно", "облачно", "малооблачно". 100% ясного неба гарантировать нельзя. Точно так же, как нельзя гарантировать, что "сильно облачно" означает 100% затянутое небо.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 29th, 2025 01:36 am
Powered by Dreamwidth Studios