It's happened to me occasionally as well. I believe your router was assigned a public IP address registered to an Internet provider in a different city. My local provider contracts with a larger provider for its "big I" connectivity which includes public IP addresses registered to my local provider's location. My provider does not contract for a one to one customer to public IP address relationship. So if all of the pool is used, it is issued temporary addresses. These addresses will be registered elsewhere and trigger the difference in the weather application.
I've been retired from the commercial networking game for 10 years. So if someone currently working a network for a large corporation has a better explanation, I'll gladly defer to them.