There are many zmanim services and apps that use ZIP codes as a location finder for calculating zmanim. While very convenient, there is a potential pitfall in using ZIP codes for geolocation. In general, ZIP code geolocation services will provide the center of the ZIP code and zmanim apps calculate zmanim for that location. The issue arises with large ZIP code areas mostly found in rural areas. Take the following two extreme cases that have very large ZIP code areas. ZIP code 89049 for rural Tonopah, NV, is 195 km (121 mi) from east to west. The eastern boundary of this non-contiguous ZIP code has a longitude of -115.417°, while the western boundary is -117.625°. This means that there are 2.2° of longitude between the eastern and western borders of this ZIP code. The earth rotates 1 degree every 4 minutes, so zmanim at the eastern and western edges of this ZIP code are approximately 8.8 minutes apart. Using the typical center of the ZIP based calculations would mean that zmanim would be about 4.4 minutes different at the edges compared to the center. Moving to something a bit more extreme, is the case of ZIP code 99557 of Aniak, Alaska and its surrounding area. This ZIP code is 415 km (258 mi) from east to west. The longitude of the eastern edge of the ZIP code is -153.032°, and the western edge is -160.783°. Being farther north and therefore having shorter distances between degrees of longitude, this ZIP code stretches across 7.7° of longitude. The zmanim difference from the center to the edges of this ZIP code is 15 and a half minutes (31 minutes across the ZIP). While it is indeed rare to have such large distances, there are 193 US ZIP codes that are over 1° of longitude wide, meaning that the zmanim difference for these ZIP codes are at a minimum 4 minutes apart, or 2 minutes off from the center. There are 1,463 or 4.4% of all ZIP codes with 0.5° or greater distance between east and west (a minimum of a 2 minute zmanim difference between the east and west zide of the ZIP code). zmanim software developers should be aware of this, and take care to alert users of possible inaccuracies when using large ZIP code areas, or require addresses or more specific location information for large zip codes.
Let’s contrast the above with Lakewood, NJ. With 0.107° of longitude from east to west, zmanim are 24 seconds later on the west side (the intersection of New Central Ave & N Hope Chapel Rd) than the east side (Shinn Cranes, 1600 Ocean Ave). New York City is larger, and from the western edge of Staten Island to the edge of Glen Oaks, the eastern edge of Queens there is a 2 minute and 11 second difference in zmanim.
See the Calculation of Zmanim VS Other Sites post for additional related material.
I thank Avraham David Gelbfish for generating the ZIP code longitude range for all 33,093 ZIP codes from the US Census Bureau ZIP code shape files.
The Novaya Zemlya Effect’s Impact on Zmanim
You may have seen disclaimers on zmanim calendars warning of up to a 2 minute inaccuracy due to weather and atmospheric conditions. Atmospheric refraction from the earth’s atmosphere, causes the sun to be visible on average about 3 minutes earlier at sunrise, and about 3 minutes later at sunset (compared to a vacuum) due to the atmosphere bending the sunlight upwards towards the viewer. The 3 minutes is only an average, and it can swing widely due to weather and atmospheric conditions. The typical variance caused by “non-average” atmospheric conditions would usually be within 2 minutes, resulting in the 2 minutes mentioned in the disclaimers. This 2 minute variance is during usual conditions, though there are conditions that would greatly increase this time.
Refraction Explained
When the sun’s rays traveling through the vacuum of space hit the earth atmosphere, they slow down and bend upwards towards the observer resulting in the sun being visible earlier (than in a vacuum) in the morning, and later at sunset. Refraction of the sun’s rays is not a one stage refraction, but as the sun passes through increasingly dense layers of atmosphere, the amount of refraction increases with each thicker layer. This can be seen in the diagram of refraction at sunset above. The apparent position of the sun near sunset in the image (exaggerated in the image) is height of the sun as it appears to the user, though in reality the sun is below the horizon. Refraction can easily be observed by looking at a straw in a partially filled glass. The straw appears to bend (or be broken) at the point it enters the water. This is due to increased refraction in water versus air.
Complexity in Calculating Refraction
Since the amount of refraction depends on the pressure (the denser the atmosphere is, the greater the refraction), temperature (hot air is less dense and refracts less) and to a lesser degree humidity (water vapor in the air impacts the refraction) in each layer of the atmosphere, calculating refraction is complex and requires very detailed meteorological information on the current conditions in each layer of the atmosphere in the area being computed. This can’t be done accurately in advance, and even calculations for the current day require readings from weather balloons at multiple elevations for accurate measurement, something not very practical (though the BMG Lakewood vasikin minyan and likely other minyanim as well) manually adjust the hanetz hachama time each morning based on the weather). For this reason, zmanim (as well as civil sunrise and sunset) calculations usually use a global average refraction of 34′ of a degree, or 0.5666°. The global average atmospheric refraction accounts for sunrise being between 3:01 minutes earlier (during the solstice), and 2:29 minutes earlier (during the equinox) in Yerushalayim, as opposed to the value in a vacuum (the difference depends on where in the world you are, in Lakewood, NJ the range is 3:29 – 2:57). This average atmospheric refraction is not very accurate but is commonly used since it is complex to calculate local averages. More accurate refraction figures can be calculated for local and seasonal atmospheric models, and these have been shown to be accurate to within 15 seconds 90% of the time in the case of summer and winter subtropical models used in a study in Israel. See Using a Digital Terrain Model to Calculate Visual Sunrise and Sunset Times by Rabbi Chaim Keller and Dr. John K. Hall for additional details.
Inversion and the Novaya Zemlya Effect
Under usual conditions, the atmosphere gets colder at elevation, with the warmest air being closest to earth. An inversion condition is where there is a layer of cold air under a layer of warmer air. When there is an inversion over a large area (greater than 400 km), the solar rays get ducted in the lower colder air layer (see image below) and produce an extreme refraction. This is known as the Novaya Zemlya effect and produces a solar mirage resulting in the somewhat visually distorted sun being visible much earlier than expected (see top image).While typically a phenomena in the polar regions, a study by the University of Calgary showed that refraction can have a significant affect on zmanim even in non-polar areas. In the 2003 study (Variability in the Astronomical Refraction of the Rising and Setting Sun), they observed that the sunrise on January 10, 1991 appeared almost 12 minutes earlier than expected. The paper mentions:
On rare occasions, the Sun appeared to rise much earlier or set much later than predicted by such publications as the Tables of Sunrise, Sunset, and Twilight (USNO 1962). In our study, the sunrise of 1991 January 10 was almost 12 minutes early. This phenomenon is known as the Novaya Zemlya solar mirage (Lehn 1979). It appears to be caused by a geographically extensive temperature inversion within the boundary layer of the atmosphere. The resulting vertical density profile causes the sunlight to be ducted around the curvature of the Earth. For the purpose of this study, we defined anomalously large astronomical refraction to be an event with refraction greater than 1°. A total of 12 anomalous events were recorded (2.9%).
While these typically occur in cold areas, they can happen in other areas as well. The study authors mention that
The majority of the anomalous events took place in the cold months. Nine of the 12 events occurred between November 1 and April 30, with January having five events. At the time of the events, the average surface temperature was -10.9°C, and all events occurred with surface-inversion conditions. Surface inversions tend to form with overnight surface radiative cooling through a dry atmosphere. Typically, they persist into the early morning, even after sunrise. Even though most of the events took place in the cold parts of the year, the data suggest that the Novaya Zemlya solar mirage may not be an exclusively cold-weather or polar phenomenon. Four of the events occurred with a surface temperature greater than 0°C. One event took place 2 days after the summer solstice.
Refraction at Sunrise VS Sunset
The University of Calgary study found that extreme refraction is an order of magnitude more common at sunrise than sunset. The reason for the difference between sunrise and sunset is that
This may be because the lower atmosphere is better mixed during the day as a result of solar heating leading to a dry adiabatic lapse rate in the boundary layer. Anomalously large astronomical refraction events the “Novaya Zemlya solar mirage” occurred about 3% of the time and were an order of magnitude more common at sunrise than sunset.
That said, The Novaya Zemlya effect does occur at sunset and in warm climates as seen in this video of sunset in San Francisco. Sadly, the video does not include information on how long it delayed sunset.
Halacha
Halachically sunrise and sunset times depend on when we can see the sun, and not when it is at the horizon. As mentioned above, the average global refraction of 34′ results in sunrise appearing about 3 minutes earlier and sunset 3 minutes later than in a vacuum, and this refraction (or other similar refraction values) is what is used in all calendars (both halachic and civil). The fact that there is such potential for variation in weather conditions, and that the global average is likely not what is present where the zmanim are being calculated, is the reason that many luchos (zmanim calendars) have disclaimers about accuracy. Many calendars round off their zmanim without showing seconds due to the inability to accurately calculate zmanim because of refraction variations. Lahalacha the impact of earlier or later sunrise is limited to vasikin minyanim. A separate article may be needed to actually discuss sof zman krias shema and other zmanim‘s relation to sunrise and sunset VS the actual position of the sun in the sky (1/4 of the way across its path for sof zman krias shema). The halachic impact of refraction at sunset is much greater since it impacts the day/night boundary, but those are much rarer.
Now to the big question, does extreme refraction such as the Novaya Zemlya effect impact zmanim? The fact that it rarely impacts sunset, means that it almost academic since predicting the inversion before a vasikin minyan starts is impractical. In a conversation with one posek a number of years ago, he felt that the Novaya Zemlya Effect should not impact zmanim lahalacha due to the fact that unusual occurrences should not be factored in, and because the distorted sun is not considered the sun as far as zmanim. I would appreciate being notified if anyone receives a psak halacha on this question.
Zmanim For Kiddush Levana Before Shavuos 5778
Rarely do you find zmanim that are days apart based on your location, but this year, that is exactly what will happen. With Shavuos falling on a Sunday and Monday, we end up with a “three-day Yom Tov” that impacts the earliest time / zman that קידוש לבנה Kiddush Levana can be said (for those who say it 3 days after the מולד molad). With the minhag that Kiddush Levana is not said on Shabbos or Yom Tov, there is only a small chance to say Kiddush Levana on Thursday night based on your location. The molad for the month of Sivan was at 6:00:23 am in Yerushalayim (5:21 am and 6 chalakim local mean time using the traditional calculation) on Rosh Chodesh Sivan, Tuesday May 15. This results in techilas zman kiddush levana 3 days later at 6:00:23 am Friday morning May 18. This is well after the moon sets, and actually after the sun rises. It can’t be said on Friday night, or Motzai Shabbos since it is Yom Tov. The earliest it can be said in Israel is on Sunday night. Much farther west in NY or Lakewood, NJ, where 2 days of Yom Tov are observed you get close to being able to say it on Thursday night, but not close enough. Kiddush Lavena could theoretically be said at 11:00 pm Thursday night, but by that time, the moon will already set (at 10:38 pm in Lakewood, and at 10:39 pm in Brooklyn, NY) and you end up having to wait until Monday night to say Kiddush Levana. From 11:00 pm on Monday night, even those who do not recite Kiddush Levana until 7 days after the molad can say it (moonset is at 1:20 am). Traveling farther west to Cleveland, OH with a moon set of 11:14 pm would seem to allow Kiddush Levana to be said on Thursday night. However, with the moon this close to the horizon, it would be almost impossible to see the moon and say Kiddush Levana on Thursday night before the moon set. Going a little farther west, we hit the first locations that can say Kiddush Levana on Thursday night. Chicago (and other areas along their longitude) with a techilas zman Kiddush Levana of 10:00 pm and a moonset of 10:40 pm would likely be the first places in the world to say Kiddush Levana this year.
Thus, from Chicago to the west coast of the USA and Canada, Kiddush Levana can be said 3 days before Israel, and 4 days before Europe and eastern USA and Canada.
Parsha Code Removed from KosherJava Zmanim Calendar API
Due to licensing issues that were brought to my attention last year, the parsha code was removed from the Zmanim API on Aug 22, 2016. In the future I may release the parsha code as a standalone module under the GPL license, or create a new LGPL implementation. To understand this more clearly, the current Zmanim API is licensed under the LGPL, while the parsha code contained some GPL code that had to be removed in order to retain the LGPL license. I would welcome any code submission for parsha code that could be released under the LGPL.
Update: Parsha Code Restored
On November 17, 2019 – י״ט מרחשון תש״פ an updated post Parsha Code Restored to the KosherJava Zmanim Calendar API announced the restoration of the parsha functionality.
FAQ: Different Parshas Hashavua in Eretz Yisrael Than Chutz La’aretz
Question:
Why does the KosherJava Zmanim API seem to sometimes return the incorrect parshas hashavua in Israel?
Answer:
I have had a number of inquiries this year about the incorrect Parshas Hashavua being returned by the API. In all cases this has been a complaint for Eretz Yisrael and not Chutz La’aretz. The explanation is pretty simple and covered in the API documentation for the JewishCalendar class, but may not be clear to all. When the first day of Pesach occurs on a Shabbos, as it did this year (5775), the last day of Pesach in Eretz Yisrael is on a Friday. The following day is a regular Shabbos in Eretz Yisrael with the usual krias hatorah, but in chutz la’aretz it is the 8th day of Pesach, resulting in krias Hatorah for Pesach. The following weeks will have different krias HaTorah in Eretz Yisrael vs chutz la’aretz, and this will continue for a number of weeks until a double parsha in chutz laaretz is added to equalize the parsha. This last occurred in 2012 (before the release of the calendar functionality in the Zmanim 1.3 release) and will occur again next year. If you are coding to display the Parshas Hashavuah for use in Israel, it is important to set the inIsrael(true)
flag (it has a default of false
).
JewishDate.setInIsrael(true);
A fuller example showing how to set the indicator and showing the comparison of Eretz Yisrael and Chutz Laaretz this year can be seen in this example.
JewishCalendar israelCalendar = new JewishCalendar(5775, JewishDate.NISSAN, 7); israelCalendar.setInIsrael(true); //set the calendar to Israel JewishCalendar chutsLaaretzCalendar = new JewishCalendar(5775, JewishDate.NISSAN, 7); chutsLaaretzCalendar.setInIsrael(false); //not really needed since the API defaults to false HebrewDateFormatter hdf = new HebrewDateFormatter(); System.out.println("Date\tChutz Laaretz / Eretz Yisrael")); for(int i = 0; i < 57; i++){ israelCalendar.forward(); //roll the date forward a day chutsLaaretzCalendar.forward(); //roll the date forward a day if(chutsLaaretzCalendar.getDayOfWeek() == 7){ //ignore weekdays System.out.println(hdf.formatParsha(chutsLaaretzCalendar) + "\t" + hdf.formatParsha(israelCalendar) + " \\ " + hdf.format(chutsLaaretzCalendar)); } }
the output of this is
Date Chutz Laaretz / Eretz Yisrael 8 Nissan, 5775 Tzav / Tzav 15 Nissan, 5775 / 22 Nissan, 5775 / Shmini 29 Nissan, 5775 Shmini / Tazria Metzora 6 Iyar, 5775 Tazria Metzora / Achrei Mos Kedoshim 13 Iyar, 5775 Achrei Mos Kedoshim / Emor 20 Iyar, 5775 Emor / Behar 27 Iyar, 5775 Behar Bechukosai / Bechukosai 5 Sivan, 5775 Bamidbar / Bamidbar
It should be noted that this discrepancy is not rare and happens about 25% of the calendar years.