Probably all of you saw maps of Ancient Egyptian sites (I had a school workbook) in stylized way like this:
I wished to recreate this kind of map using Python and OpenStreetMap but the problem I faced was the absolute absence of some dataset or even list with coordinates of egyptian pyramids. So I took different historical sources, Google Maps, wikipedia (in English, French, Deutsch, Russian) and combined the information in one dataset of known pyramids as an .csv file (on Kaggle or on GitHub). If you have more information or find some nonconformity - let me know! Such important part of mankind history shouldn't be forgotten.
Source code uses only 2 modules: pandas (for dataframes) and folium (for interactive maps based on OpenStreetMap).
1. Install and import modules
pip install pandas
pip install folium
2. Check the .csv file with pyramids
- the file contains 62 Egyptian pyramids;
- every pyramid has a Modern Name and some of them have an Ancient Name as it was translated from ancient egyptian hieroglyphs;
- every pyramid has its coordinates - Latitude and Longitude in decimal form;
- there are owners of a pyramid and sometimes supposed owners - symbol '(?)' follows the name of Pharaoh;
- every pyramid is marked with it's Dynasty and location (Site);
- there is missing data (Slope and Volume of some pyramids mostly);
- base (Base1 (m) and Base2 (m)) and Height (m) of pyramid are in meters and represent the original size (that the pyramid was or was supposed to be);
- some pyramids are marked with a Lepsius number which is a roman number from I to LXVII plus the pyramid number LG100 (pyramid of Khentkaus I);
- most pyramids have a Type of construction (Step, True, Smooth-faced, Smooth-sided) and most used Material (Limestone, Mudbrick, Granite, Sandstone or a combination);
- there is also a column Comment which contains some descriptive information.
3. Get some statistics
- maximum height of pyramid is 146.6 meters (Great Pyramid of Giza) and minimum - 6.8 meters (Pyramid of Seila).
4. Arrange pyramids into periods
I am taking in consideration only Early Dynastic Period, Old Kingdom, FIP, Middle Kingdom, SIP and the beginning of New Kingdom.
Period | Years (approx.) | Dynasties | |
---|---|---|---|
1 | Early Dynastic Period | c. 3150 BC – c. 2686 BC | 1. First Dynasty of Egypt (ca. 3100 BC – ca. 2900 BC) 2. Second Dynasty of Egypt (c. 2890 BC – c. 2686 BC) |
2 | Old Kingdom Age of the Pyramids |
c. 2686 BC – c. 2181 BC | 3. Third Dynasty of Egypt (ca. 2686 BC – ca. 2613 BC) 4. Fourth Dynasty of Egypt (ca. 2613 BC – ca. 2494 BC) 5. Fifth Dynasty of Egypt (ca. 2494 BC – ca. 2345 BC) 6. Sixth Dynasty of Egypt (ca. 2345 BC – ca. 2181 BC) - Seventh Dynasty of Egypt is considered spurious |
3 | First Intermediate Period (FIP) Dark age |
c. 2181 BC – c. 2055 BC | 8. Eight Dynasty of Egypt (ca. 2181 BC – ca. 2160 BC) 9. Ninth Dynasty of Egypt (ca. 2160 BC – ca. 2130 BC) 10. Tenth Dynasty of Egypt (ca. 2130 BC – ca. 2040 BC) - these dynasties are often combined |
4 | Middle Kingdom Reunification |
c. 2055 BC – c. 1650 BC | 11. Eleventh Dynasty of Egypt (ca. 2130 BC – ca. 1991 BC) 12. Twelfth Dynasty of Egypt (1991 BC – 1802 BC) 13. Thirteenth Dynasty of Egypt (1803 BC – 1649 BC) 14. Fourteenth Dynasty of Egypt (ca. 1725 BC – ca. 1650 BC) - these dynasties are often combined under the group title Middle Kingdom |
5 | Second Intermediate Period (SIP) |
c. 1650 BC – c. 1550 BC | 15. Fifteenth Dynasty of Egypt (1650 BC – ca. 1550 BC) 16. Sixteenth Dynasty of Egypt (1649 BC – 1582 BC) 17. Seventeenth Dynasty of Egypt (ca. 1580 BC – ca. 1550 BC) |
6 | New Kingdom Egyptian Empire |
c. 1550 BC – c. 1069 BC | 18. Eighteenth Dynasty of Egypt (1550 BC – 1292 BC) |
5. Some preparations before creating marks on the map
- find mean latitude and longitude of dataset;
- create function to color different kingdoms;
- provide a legend.
6. Сreate a map
🌍 View in browser: OpenStreetMap of 62 pyramids
- glyphicon with open eye shows if Pharaoh' name is certain;
- popup shows the modern name of pyramid.
7. Create Lepsius list and map
- Drop rows where Lepsius column contains NaN values;
- Create Lepsius map: zoom in to get the pyramids and the Pharaoh's name.
🌍 View in browser: OpenStreetMap of Lepsius list
- red circle represents a pyramid with a roman number in it; zoom in!
- popup shows the owner's (pharaoh or his wife) name
🔺 The interactive maps in my Kaggle notebook
📄 Source code on GitHub .py and .ipynb
P.S. Feel free to contact me if you have some additional info about Egyptian pyramids dataset.