Basic Difference:

DMSP-OLS VIIRS DNB
Reflectance (Ratio of radiance) Radiance
Ratio (DN) Absolute Value (DNB)
1000m resolution 750 m resolution
Cloud & Light Noise Adjusted Non adjusted raw values
6 bit quantization [0 - 63 (2^6)] 13/14 bit [range:0 - 8192+ (2^13)]

Background:

Running DMSP series on nightlights from 1992-2013 has limitations, such as low spatial resolution (2.7 km ground sample distance), low radiometric resolution (six bit), a saturation effect in bright regions, lack of on-board calibration, lack of systematic recording of in-flight gain changes and lack of multiple spectral bands for discriminating lighting types lack of spectral channels suitable for discrimination of thermal sources of lighting and lack of low light imaging spectral bands suitable for discriminating lighting types. http://www.star.nesdis.noaa.gov/smcd/spb/nsun/snpp/VIIRS/VIIRS_SDR_Users_guide.pdf.

Distribution of DMSP DN

* latter is an interactive plot, zoom into sections to avoid scaling distortions*

Distribution of VIIRS DNB

VIIRS offers a substantial number of improvements over the OLS in terms of spatial resolution, dynamic range, quantization, calibrations and the availability of spectral bands suitable for discrimination of thermal sources of light emissions.

* latter is an interactive plot, zoom into sections to avoid scaling distortions*

Analysis Plan

Clip raster tile by Indian boundaries

More times than often when any satellite imagery data (DMSP or VIIRS) is clipped for India, there is a possibility of associated noise. Also clipped data’s NA value are wrongly taken as 0 radiance/reflectance. Tile clipping to the specified geography helps in resolving this.

Reproject the data by Albers Projection

The Albers equal-area conic projection two standard parallels. The scale and shape are not preserved, distortion is minimal between the standard parallels. Albers prjection application helps in defining uniform pixel geometry before implementing resampling

# Albers Projection
# ---------------------
aea <- '+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 
+y_0=0 +datum=NAD83' 
#ra <- projectRaster(vr14, crs=aea) 

# Resultant GRID
# ---------------------
m <- map(database= "world", regions  = "India", plot=F)
map(database= "world", regions  = "India", project="albers", par=c(39, 45))
map.grid(m)

https://www.nceas.ucsb.edu/~frazier/RSpatialGuides/OverviewCoordinateReferenceSystems.pdf

Resampling: from 15 arc seconds to 30 arc second:

The following chunk converts the image pixel from 750m to 1 sq km, by creating an empty raster grid of specified geometry and then imposing night lights data onto it

ras <- raster("C:/Parth/Personal/Data Mining/GoI DEA/Data/Raw/Night Lights/VIIRS/India 14-15/SVDNB_20140301-20140331.avg_rade9_India.tif")  

# Extent Computations
# ---------------------
x_min <- extent(ras)[1]
x_max <- extent(ras)[2]
y_min <- extent(ras)[3]
y_max <- extent(ras)[4]
cell_res <- 0.008333333  # 10 km GRID
cell_res <- 0.0008333333  # 10 km GRID

# Number of Columns & Rows : Computations
# ---------------------
x_extent <-as.integer((x_max-x_min)/cell_res)
x_extent.1 <- (((x_max-x_min)/cell_res)-as.integer((x_max-x_min)/cell_res))  #Long
y_extent <- as.integer((y_max-y_min)/cell_res)
y_extent.1 <- (((y_max-y_min)/cell_res)-as.integer((y_max-y_min)/cell_res))  #Lat
n_row <- ifelse(y_extent.1>0.5,(y_extent+2),(y_extent+1))    #lat
n_col <- ifelse(x_extent.1>0.5,(x_extent+2),(x_extent+1))    #long

# Empty Raster
# ---------------------
ras1 <- raster(nrow=n_row,ncol=n_col)
extent(ras1) <- extent(ras)

# Resampling from 750m to 10km
#ras2 <- resample(ras,ras1,method='bilinear')
#extent(ras2) <- extent(ras)
#writeRaster(ras2,filename = "Mar2014.tif",format="GTiff",overwrite=TRUE) 

Quantization

Unfortunately there is no deinfed package in R for bit transformation. The results for the same will be shared in here shortly

Appendix: Techincal Notes