Apologies in advance if this question is incredibly basic, but I've been googling around and I just don't know where to start. I've downloaded some nighttime luminosity data from NASA, and the data comes in TIF format. I've managed to add the TIF in as a layer in ArcGIS 10, and I've cropped it to be focused just on Africa, but it's a pretty detailed dataset. I think each pixel has an associated value of luminosity, from 0-63.

So, basically I'm trying to get some kind of attribute table out of this that lists each individual pixel and the associated luminosity, along with latitude and longitude of each pixel. I thought the easiest way to go about doing this was to do Raster to Point (so I get a shapefile, something I'm more used to working with), but I tried doing this and received the error that the output was over 2 GB and the process couldn't be finished. Does anyone have any tips?

I also have QGIS if working in that might be easier.

  • 2
    Could you explain why you need such an attribute table? For most analyses on this type of data, it's best to stick with the raster format.
    – Jake
    Dec 11, 2013 at 8:38
  • One more Jake? I will change my user name, but there is a one month delay changing a new user name.
    – Jakob
    Dec 11, 2013 at 9:59
  • I'm really just looking at luminosity as dependent variable, and I want to identify my observations spatially. Thanks. Dec 12, 2013 at 7:16
  • @BenThompson: So you have some kind of independent point measurements (presumably as a point vector layer), and for each of those independent measurements, you want to identify the associated luminosity?
    – Jake
    Dec 12, 2013 at 8:59
  • Yeah, exactly. And I want to see how luminosity is changing over time, so I've downloaded several years of annual satellite data. Dec 12, 2013 at 19:56

2 Answers 2


Reading the comments under the question you're looking to extract values from a number of rasters at given points (that match your measurements).

Working in QGIS (v2.2, but likely the same with other versions) you need:

  • Your vector point layer as a shp file open
  • Any number of rasters open (there's probably an upper limit to the number of files you can open at once)
  • Both file types using the same projection (or be prepared for problems)
  • Point sampling tool plugin installed.

Then open the point sampling tool plugin (Plugins/Analyses/Point Sampling Tool), select your vector file in the top box and all the raster files you want to sample in the middle box. Select a file to save the new layer to in the bottom box. If you want to change the new column names you can do this in the fields tab. When you want to run the process press OK.


This type of work is called digital image processing and is much more complicated than it appears. As you have noted, our brains are very good at immediately picking out light sources from digital images. However, we need to provide often complicated algorithms to automate the same task via computer. There are many approaches available here and I will suggest a few.

Reclassify your image so that digital number (DN) peaks (i.e. light sources) are reclassified to 1's at a certain threshold and all other pixel values are classified as 0's or NoData. This method is generally refered to as contrast thresholding. From there, convert the classified DN "peaks" to polygon using Raster to Polygon. Then loop through each polygon feature (using ModelBuilder's Iterate Feature Selection) to find the polygon centroids. Finally, use the Sample tool to get the DN values that intersect the points.

The other approach would be to use a more sophisticated pixel-based classification algorithm such as ISODATA or Maximum Likelihood to classify the DN peaks, both of which are available in Arc. Follow this up with the previously described vector method.

  • OK, thanks. Just a question, since it seems you are familiar with this kind of data -- the data I'm getting from NASA: if the values are typically 1-63, are you saying I shouldn't jump to the conclusion that darkest = 0 and lightest = 63 and expect everyone to take any results I come up with seriously? That's fine if so. I'm pretty new to this. If you think the contrast thresholding is a more robust 'measuring' method, then I can go with that. Dec 12, 2013 at 7:15
  • Sound like these data are not in binary format--but rather, have a continuous range of values from lowest to highest intensity. You will have to decide what a useful threshold is to answer your research questions. If you are interested in measuring all light sources, then a much lower threshold would be required. What question/s are you trying to answer?
    – Aaron
    Dec 12, 2013 at 14:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.