Logging

Danger

Content under development !

Explain :

  • llllll
  • --log
  • --log-rich
  • --log-file
  • Difference against debugging

Say we query a NetCDF file for a few timestamps

pvgis-prototype \
    series select \
    spectral_effect_cSi_over_esti_jrc.nc \
    8.6 45.8 \
    --neighbor-lookup nearest \
    '2005-12-31 12:00:00, 2006-12-31 12:00:00,2007-12-31 12:00:00,2008-12-31 12:00:00,2009-12-31 12:00:00'
1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457

and the output is nothing!

We can use some logging flags to get details around several steps of the requested operation. In example, let's add -l to the same command

pvgis-prototype \
    series select \
    spectral_effect_cSi_over_esti_jrc.nc \
    8.6 45.8 \
    --neighbor-lookup nearest \
    '2005-12-31 12:00:00, 2006-12-31 12:00:00,2007-12-31 12:00:00,2008-12-31 12:00:00,2009-12-31 12:00:00' \
    -l
1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457

We can also try --log

pvgis-prototype --log \
    series select \
    spectral_effect_cSi_over_esti_jrc.nc \
    8.6 45.8 \
    --neighbor-lookup nearest \
    '2005-12-31 12:00:00, 2006-12-31 12:00:00,2007-12-31 12:00:00,2008-12-31 12:00:00,2009-12-31 12:00:00'
1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457

or even --log-rich for a colorful output

pvgis-prototype --log-rich \
    series select \
    spectral_effect_cSi_over_esti_jrc.nc \
    8.6 45.8 \
    --neighbor-lookup nearest \
    '2005-12-31 12:00:00, 2006-12-31 12:00:00,2007-12-31 12:00:00,2008-12-31 12:00:00,2009-12-31 12:00:00'
RichHandler
[12/01/25 22:13:34]
DEBUG    Created cache for select_time_series in request unknown, TTL=30s, maxsize=24                                                                  log.py:80
DEBUG    Object spectral_effect_cSi_over_esti_jrc.nc is hashable.                                                                                      log.py:80
DEBUG    Object 8.6 is hashable.                                                                                                                       log.py:80
DEBUG    Object 45.8 is hashable.                                                                                                                      log.py:80
DEBUG    Object DatetimeIndex(['2005-12-31 12:00:00', '2006-12-31 12:00:00',                                                                           log.py:80
                        '2007-12-31 12:00:00', '2008-12-31 12:00:00',                                                                                           
                        '2009-12-31 12:00:00'],                                                                                                                 
                       dtype='datetime64[ns]', freq=None) is unhashable.                                                                                        
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object ['spectral_effect'] is unhashable.                                                                                                     log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object MethodForInexactMatches.nearest is hashable.                                                                                           log.py:80
DEBUG    Object 0.1 is hashable.                                                                                                                       log.py:80
DEBUG    Object False is hashable.                                                                                                                     log.py:80
DEBUG    Object False is hashable.                                                                                                                     log.py:80
DEBUG    Object 0 is hashable.                                                                                                                         log.py:80
DEBUG    Object 0 is hashable.                                                                                                                         log.py:80
DEBUG    Data file in /builds/NikosAlexandris/pvgis-prototype : spectral_effect_cSi_over_esti_jrc.nc                                                   log.py:80
DEBUG    Scale factor : None, Offset : None                                                                                                            log.py:80
DEBUG    Requested location coordinates : 8.6, 45.8                                                                                                    log.py:80
DEBUG    i Executing data selection function : select_location_time_series()                                                                           log.py:80
DEBUG      ✓ Location specific dimensions detected in 'spectral_effect' : lon, lat                                                                     log.py:80
DEBUG      ✓ Coordinates : 8.6, 45.8.                                                                                                                  log.py:80
DEBUG      < Returning selected location from time series : <xarray.DataArray 'spectral_effect' (time: 140256)> Size: 1MB                              log.py:80
         array([1.02264192, 1.02264192, 1.02264192, ..., 1.01880512, 1.01880512,                                                                                
                1.01880512])                                                                                                                                    
         Coordinates:                                                                                                                                           
             lon      float64 8B 8.638                                                                                                                          
             lat      float64 8B 45.81                                                                                                                          
           * time     (time) datetime64 1MB 2005-01-01 ... 2020-12-31T23:00:00                                                                                  
         Attributes: (12/14)                                                                                                                                    
             _FillValue:                -999.0                                                                                                                  
             AREA_OR_POINT:             Area                                                                                                                    
             TIFFTAG_SOFTWARE:          GRASS GIS 7.2.0 with GDAL 2.0.1                                                                                         
             STATISTICS_APPROXIMATE:    YES                                                                                                                     
             STATISTICS_MAXIMUM:        1.0622563547625                                                                                                         
             STATISTICS_MEAN:           1.0089136456603                                                                                                         
             ...                        ...                                                                                                                     
             STATISTICS_VALID_PERCENT:  28.44                                                                                                                   
             grid_mapping:              spatial_ref                                                                                                             
             units:                     Unitless                                                                                                                
             long_name:                 Spectral Effect Factor                                                                                                  
             add_offset:                0.0                                                                                                                     
             scale_factor:              1.0                                                                                                                     
DEBUG    Selected location from time series : <xarray.DataArray 'spectral_effect' (time: 140256)> Size: 1MB                                            log.py:80
         array([1.02264192, 1.02264192, 1.02264192, ..., 1.01880512, 1.01880512,                                                                                
                1.01880512])                                                                                                                                    
         Coordinates:                                                                                                                                           
             lon      float64 8B 8.638                                                                                                                          
             lat      float64 8B 45.81                                                                                                                          
           * time     (time) datetime64 1MB 2005-01-01 ... 2020-12-31T23:00:00                                                                                  
         Attributes: (12/14)                                                                                                                                    
             _FillValue:                -999.0                                                                                                                  
             AREA_OR_POINT:             Area                                                                                                                    
             TIFFTAG_SOFTWARE:          GRASS GIS 7.2.0 with GDAL 2.0.1                                                                                         
             STATISTICS_APPROXIMATE:    YES                                                                                                                     
             STATISTICS_MAXIMUM:        1.0622563547625                                                                                                         
             STATISTICS_MEAN:           1.0089136456603                                                                                                         
             ...                        ...                                                                                                                     
             STATISTICS_VALID_PERCENT:  28.44                                                                                                                   
             grid_mapping:              spatial_ref                                                                                                             
             units:                     Unitless                                                                                                                
             long_name:                 Spectral Effect Factor                                                                                                  
             add_offset:                0.0                                                                                                                     
             scale_factor:              1.0                                                                                                                     
DEBUG    Selected timestamps from location time series : <xarray.DataArray 'spectral_effect' (time: 5)> Size: 40B                                      log.py:80
         array([1.01880512, 1.01880512, 1.01880512, 1.01880512, 1.01880512])                                                                                    
         Coordinates:                                                                                                                                           
             lon      float64 8B 8.638                                                                                                                          
             lat      float64 8B 45.81                                                                                                                          
           * time     (time) datetime64 40B 2005-12-31T12:00:00 ... 2009-12-31T12:...                                                                           
         Attributes: (12/14)                                                                                                                                    
             _FillValue:                -999.0                                                                                                                  
             AREA_OR_POINT:             Area                                                                                                                    
             TIFFTAG_SOFTWARE:          GRASS GIS 7.2.0 with GDAL 2.0.1                                                                                         
             STATISTICS_APPROXIMATE:    YES                                                                                                                     
             STATISTICS_MAXIMUM:        1.0622563547625                                                                                                         
             STATISTICS_MEAN:           1.0089136456603                                                                                                         
             ...                        ...                                                                                                                     
             STATISTICS_VALID_PERCENT:  28.44                                                                                                                   
             grid_mapping:              spatial_ref                                                                                                             
             units:                     Unitless                                                                                                                
             long_name:                 Spectral Effect Factor                                                                                                  
             add_offset:                0.0                                                                                                                     
             scale_factor:              1.0                                                                                                                     
DEBUG    Cache MISS for select_time_series in request unknown (ttl_hash=0)                                                                             log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object 8.6 is hashable.                                                                                                                       log.py:80
DEBUG    Object 45.8 is hashable.                                                                                                                      log.py:80
DEBUG    Object DatetimeIndex(['2005-12-31 12:00:00', '2006-12-31 12:00:00',                                                                           log.py:80
                        '2007-12-31 12:00:00', '2008-12-31 12:00:00',                                                                                           
                        '2009-12-31 12:00:00'],                                                                                                                 
                       dtype='datetime64[ns]', freq=None) is unhashable.                                                                                        
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object None is hashable.                                                                                                                      log.py:80
DEBUG    Object MethodForInexactMatches.nearest is hashable.                                                                                           log.py:80
DEBUG    Object 0.1 is hashable.                                                                                                                       log.py:80
DEBUG    Object False is hashable.                                                                                                                     log.py:80
DEBUG    Object False is hashable.                                                                                                                     log.py:80
DEBUG    Object 0 is hashable.                                                                                                                         log.py:80
DEBUG    Object 0 is hashable.                                                                                                                         log.py:80
DEBUG    Cache MISS for select_time_series in request unknown (ttl_hash=0)                                                                             log.py:80
1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457

Finally, we can export to a log file via the --log-file option

pvgis-prototype --log-file series_select.log \
    series select \
    spectral_effect_cSi_over_esti_jrc.nc \
    8.6 45.8 \
    --neighbor-lookup nearest \
    '2005-12-31 12:00:00, 2006-12-31 12:00:00,2007-12-31 12:00:00,2008-12-31 12:00:00,2009-12-31 12:00:00'
1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457,1.0188051192543457
The log file