In our second "best of the boards" post, we examine why you might be able to receive GPS signals indoors. Last time, we learned how water impacts reception, but what about the roof over your head? This question was posted on Geocaching.com’s foums, aka Groundspeak. Their GPS Units and Software forum is an excellent resource for anyone interested in GPS and mapping software. Peter, a geocacher, provided the best answer…
They come through my roof (plywood and spanish tiles on top) just fine too, and they also make it through typical fiberglass boat construction. Most materials are not good absorbers of microwaves, but anything with a high water content (incl. people) or metal will block the signals.
As a general rule, anything that will heat up readily in a microwave oven will also absorb the GPS signals although the frequencies are a little different (1.5 GHz for GPS and a little over 2 GHz for ovens).
So as long as the wood and shingles on your roof are dry they’ll pass the signals ok, but of course insulation with a metal foil layer would block them.
The physical reason why things with water absorb the signals is that water molecules are highly polarized with the oxygen end having a negative charge and the end with the two hydrogens having a positive charge. When the GPS signals go through water the oscillating electrical field of the microwaves cause the water molecules to rotate back and forth and this absorbs energy from the signals.
Here is the full thread.