How about having also moonlight at night?! For step 2, maybe the following python packages can be a help. Of course it’s only a starting point, but you’ll have access to the data you need.
PyEphem (Brandon Rhodes) PyEphem is a module for performing astronomical computations from the Python scripting language. Its primary purpose is to compute for an arbitrary date and location on earth the position of the sun, moon, a planet, or any asteroid or comet whose orbital elements are available. Additional functions are also included, including facilities to compute the angular separation between two objects in the sky, to determine the constellation in which an object lies, and to find the times at which any object rises, transits, and sets on a particular day. It uses procedures from Elwood Downey’s XEphem planetarium program. http://www.rhodesmill.org/pyephem/
Astrolabe (Bill McClain) Astrolabe is a collection of subroutines and applications for calculating the positions of the sun, moon, planets and other celestial objects. The emphasis is on high accuracy over a several thousand year time span. The subroutine library attempts to (someday) implement all the techniques described in Astronomical Algorithms, second edition 1998, by Jean Meeus." http://astrolabe.sourceforge.net/
I have been looking all over the net for a site that if you put in a towns name,state or province(if not in the USA) and country will give you the long and lat of that city or town center. All I have found are list for major cities like london,paris,new york. Do you happen to have the url for one of they “dictionaries” Prerably one that includes smaller cities (population <100,000).