Your datetime.datetime has no tzinfo value so will give you the GMT time which is about 7 hours off from the local time. The other factor could well be that NOAA used DMS rather than decimal lat/long so you need to remember to input 41,30,0 and -111,30,0 for the values.
N.B. You might find it instructive to try PyEphrem for this sort of calculation as I find that the documentation is clearer.