Manually Set Location Services Location
It seems that you can need wifi on (but not necessarily configured) in order to get location, Core Location works using skyhook and will not function without wifi on. This is not well documented by Apple but this StackOverflow conversation covers it. 

According to the above, you should be able to turn on Wifi, wait for a location fix and then turn it off. 
If that doesn't work look into WhereAmI, this project allows command line access to CoreLocation and you should be able to script it and wifi to turn on once in a while, log your location and then turn wifi off.