Egypt map -- data sources and attribution ========================================= Built by mapgen.py from configs/egypt.json on 2026-09-28. Every input is public and needs no account or key. Datasets used ------------- Borders Natural Earth 1:10m Cultural Vectors, version 5.1.1. PUBLIC DOMAIN (https://www.naturalearthdata.com, 'Made with Natural Earth'; no permission needed, attribution appreciated). Downloaded from https://naciscdn.org/naturalearth/10m/cultural/.zip ne_10m_admin_0_countries: EGY is the land (8 polygon parts); the neighbours (Bir Tawil, Israel, Jordan, Libya, Palestine, Saudi Arabia, Sudan) are sea, and split the sea with it for islands. ne_10m_admin_1_states_provinces: the nations' regions. ne_10m_populated_places: the nations' spawn points. Lakes Natural Earth 1:10m Physical Vectors (ne_10m_lakes), public domain, https://naciscdn.org/naturalearth/10m/physical/.zip Rivers Natural Earth 1:10m ne_10m_rivers_lake_centerlines, public domain. Elevation AWS Open Data Terrain Tiles (Mapzen/Tilezen 'terrarium' PNG tiles), zoom 9 (322 tiles) for the relief and zoom 11 (484 tiles) along the coast for the coastline, https://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.png (registry: https://registry.opendata.aws/terrain-tiles/). A compilation of public DEMs; the ones covering this area and their required credit: * SRTM and GMTED2010 terrain data courtesy of the U.S. Geological Survey (NASA/USGS, public domain); * Global ETOPO1 terrain data U.S. National Oceanic and Atmospheric Administration (public domain; the sea floor, used only to tell sea from land); Full attribution list: https://github.com/tilezen/joerd/blob/master/docs/attribution.md Geometry -------- Projection EPSG:32636 (pyproj 3.8.0); conformal and metric, so no aspect correction is used. Grid 1800 x 1608 tiles at 701.3 m/tile (1262.3 x 1127.7 km) Origin tile (x,y) covers E = -344707.0 + 701.3*x, N = 3544630.7 - 701.3*y (bounding box of the land plus 15 km of sea). Latitude row 0 = 32.0 N, last row = 21.8 N (crates/of_app/src/view.rs latitude_range: "egypt" => (32.0, 21.8)), measured at the centre column. Coastline the Natural Earth outline refined by the DEM: a tile is land when at least half of it is DEM land (terrarium elevation > 0 m; zoom 11 pixels of ~68 m, because at zoom 11 and below the tiles fill the sea near the coast from ETOPO1's 1.8 km cells and close narrow straits such as Salamis), restricted to the sea nearer to Egypt than to any neighbour and within 40 km of its coast (this adds the small islands Natural Earth 1:10m leaves out); more than 3 km inside the Natural Earth outline a tile is always land. Land borders are exactly Natural Earth's. Everything outside the border is water (the Switzerland rule). Elevation curve magnitude = round(curve(u)), clamped 0..31, where e is the tile's mean elevation (zoom 9 tiles, averaged into the tile) and u = e (no unsharp mask), the blur taken over land only so the sea does not drag the coast down. Still straight from the elevation, with no unsharp mask, but no longer one step per 120 m (28 Sep, David: 'Egypt doesn't look realistic'; that gave 99.5% Plains and a flat Sinai): about 60 m per step up to 550 m, so the plateaus' escarpments and the wadis of the Red Sea Hills show as relief, Highland from 550 m (the Gilf Kebir and Uweinat plateau, the Red Sea Hills' ridges, Sinai's flanks), Mountain from 1,000 m (Sinai's massif, Uweinat, the highest Red Sea Hills), and the top compressed so the highest Sinai tile (2,498 m mean elevation) is 23, under the terrain shader's snow caps at this latitude (snow line ~29, +-3 noise). The delta, the valley and the oases stay at 0-3. Half the land is below 260 m, 90% below 600 m. curve: piecewise-linear [[0.0, 0.0], [200.0, 3.0], [550.0, 9.5], [1000.0, 19.5], [2600.0, 23.0]]. Result: mean slope 0.128 magnitude steps/tile, 0.73% rock, bands 87.3% Plains / 11.6% Highland / 1.2% Mountain, mean magnitude 5.11 (Switzerland 0.62 / 8.8% / 51-34-15 / 11.10, Britannia 0.67 / 12.4% / 39-53-9 / 10.12, measured the same way by validate_map.py). map4x / map16x: slope 0.196 / 0.309, rock 1.53% / 3.37% (a coarser tile spans more ground; Switzerland 0.81 / 1.02, Britannia 0.93 / 1.25, Europe 1.18 / 1.53). Water magnitude OpenFront's convention: min(ceil(d/2), 31), d = Manhattan distance from the shoreline water. Lake policy Natural Earth lakes inside the land are lakes; a lake that reaches the border joins the sea outside it and is ocean. A lake under 40 tiles at full res (19.7 km2), 10 at 4x or 3 at 16x is filled back to land at the ground height. River policy see Water features below. Island policy land bodies under 2 tiles at full resolution are dropped; every island that survives the downsample is kept at 4x and 16x. Downsampling map4x / map16x: plurality vote of each 2x2 block (a 2-2 tie goes to the side with the larger sub-tile land fraction); sea cut off by the vote is reconnected along its real channel; then the small-body cleanup above. 16x is built from 4x. Carved channel tiles: 4x 0, 16x 1. Water features (mapgen_water.py) ------------------------------- Vector coast inside the lon/lat box(es) [29.3, 30.6, 32.75, 31.75] the coastline is the Natural Earth outline and the DEM is not used: the terrain tiles there show reclaimed farmland below sea level, which the DEM coastline rule would turn into sea. River policy Natural Earth centre lines (Nile, Rosetta Branch, Damietta Branch, Suez Canal) burnt as water: every tile whose centre is within 0.71 tile of the line (1.0 km wide at full resolution, Suez Canal 0.75), and burnt again from the same lines into map4x and map16x (half width 0.75 tile) after the plurality vote, so each river is one continuous 4-connected channel at every resolution. A river that reaches the sea is ocean, so boats can use it. A river end short of other water by <= 16 tiles is extended to it. Kept lakes these stay lakes at every resolution: where one touches the outside of the country, a river or the sea, its edge tiles there become land (a one-tile rim or dam), re-applied after the plurality vote at map4x and map16x. Lake Nasser: from the DEM, SRTM's flattened water surface at 179.0 m (zoom 11 pixels within 0.3 m of it, joined to the seed; a tile is lake when half of it is): 7,811 tiles, 3841.6 km2 Lake Qarun: from the DEM, SRTM's flattened water surface at -44.0 m (zoom 12 pixels within 0.3 m of it, joined to the seed; a tile is lake when half of it is): 434 tiles, 213.5 km2 Wadi El Rayan lower lake: from the DEM, SRTM's flattened water surface at -33.0 m (zoom 12 pixels within 0.3 m of it, joined to the seed; a tile is lake when half of it is): 90 tiles, 44.3 km2 Wadi El Rayan upper lake: from the DEM, SRTM's flattened water surface at -11.0 m (zoom 12 pixels within 0.3 m of it, joined to the seed; a tile is lake when half of it is): 91 tiles, 44.8 km2 Lake Siwa: from the DEM, SRTM's flattened water surface at -15.0 m (zoom 12 pixels within 0.3 m of it, joined to the seed; a tile is lake when half of it is): 50 tiles, 24.6 km2 Lake Manzala: lagoon, the enclosed water behind the Natural Earth / DEM sand bar (closing with a 1.5 km disc): 2,275 tiles, 1118.9 km2 Lake Burullus: lagoon, the enclosed water behind the Natural Earth / DEM sand bar (closing with a 1.5 km disc): 970 tiles, 477.1 km2 Lake Idku: lagoon, the enclosed water behind the Natural Earth / DEM sand bar (closing with a 1.5 km disc): 117 tiles, 57.5 km2 Lake Bardawil: lagoon, the enclosed water behind the Natural Earth / DEM sand bar (closing with a 1.5 km disc): 671 tiles, 330.0 km2 Climate (climate.bin) --------------------- Source Beck, H.E., N.E. Zimmermann, T.R. McVicar, N. Vergopolan, A. Berg, E.F. Wood: Present and future Koppen-Geiger climate classification maps at 1-km resolution, Scientific Data 5, 180214 (2018), doi:10.1038/sdata.2018.214. Data: figshare, doi:10.6084/m9.figshare.6396959 (Beck_KG_V1.zip, no login), Beck_KG_V1_present_0p0083.tif (present day, 1980-2016, ~1 km). Licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/): attribution required; the classes were turned into moisture values and reprojected (changes made). Grid the map16x grid, 450 x 402: one byte per 16x tile, 0 = driest, 255 = wettest, on the terrain shader's own moisture scale (x 255). Method each Koppen class -> a moisture (table below); reprojected with the map's projection, each 16x tile the area average of the 1 km cells in it; the sea and the neighbours (water on this map) take the nearest own land's value; Gaussian smoothing, sigma 8 km (2.9 tiles of 2.81 km). Classes BWh, BWk 0.06; BSh, BSk 0.28; Csa 0.34; Dsa 0.40; Csb, Csc, Dsb 0.46; Dsc, Dsd 0.48; Aw, ET, EF 0.50; Cwa, Cwb, Cwc, Dwa, Dfa 0.52; Cfb, Cfc, Dwb, Dwc, Dwd, Dfb 0.53; Dfc, Dfd 0.58; Cfa 0.60; Am 0.66; Af 0.76. The shader's temperate ladder: desert under 0.22, steppe to 0.33, grass to 0.56, forest above; in hot country savanna from 0.24, grass from 0.45, jungle above 0.56. Tundra and snow come from the temperature. Land the largest classes by 16x land tile: BWh 99%, BWk 1%. As the temperate ladder reads it: desert 100.0%, steppe 0.0%, grass 0.0%, forest 0.0% (before the shader's noise, heat and altitude). Colour (colour.png) ------------------- Source NASA Blue Marble Next Generation (Reto Stockli, NASA Earth Observatory; a cloud-free MODIS composite of 2004, 500 m), public domain (NASA imagery is not copyrighted; credit: NASA Earth Observatory). Served by NASA's Global Imagery Browse Services (GIBS), no login and no key: WMTS layer BlueMarble_NextGeneration ("Blue Marble (MODIS)"), EPSG:4326, tile matrix set 500m, level 7 (0.0044 degree pixels), 42 JPEG tiles from https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/BlueMarble_NextGeneration/ default/500m/{level}/{row}/{col}.jpeg. The plain layer, not BlueMarble_ShadedRelief: the terrain shader shades the relief itself. We acknowledge the use of imagery provided by services from NASA's Global Imagery Browse Services (GIBS), part of NASA's Earth Science Data and Information System (ESDIS). Grid the map4x grid, 900 x 804: RGB, 8 bits a channel, sRGB, each pixel two by two full-map tiles (1.40 km). Method the imagery's own water left out (blue over red and green, nearly black, or dark with far less red than green: the sea, Lake Nasser, the Toshka lakes of 2004; and the dark wet rim within four pixels of it); reprojected with the map's projection onto the full grid, each tile the area average (in linear light) of the pixels in it; the tiles that are not this map's land left out; averaged two by two; pixels with no land under them take the nearest land pixel's colour (213,775 of them), so the GPU's filtering never draws sea blue or a neighbour's colours onto the shore. Land mean colour 184, 158, 118 (sRGB), spread 29 / 24 / 21; 3,349 full-map land tiles had only the imagery's water under them. Game the terrain shader takes the land's base colour from this instead of its biome palette, under its own light, relief shading, territory tint, borders, haze, snow and water (Settings: Real map colours; off, it draws the palette). Nations ------- One per region; the spawn is the region's largest Natural Earth populated place (else the admin-1 label point), snapped to the nearest tile that is land at all three resolutions, in the same region and on the same landmass (coast at 16x avoided). Cairo eg-c ( 968, 311) Cairo (Natural Earth populated place, pop 11,893,000, pinned in config) Alexandria eg-alx ( 789, 126) Alexandria (Natural Earth populated place, pop 4,165,000, pinned in config) Giza eg-gz ( 951, 318) Giza (Natural Earth populated place, pop 2,681,863, pinned in config) Port Said eg-pts (1107, 122) Bur Said (Natural Earth populated place, pop 623,864, pinned in config) Luxor eg-lx (1156, 999) Luxor (Natural Earth populated place, pop 609,248, pinned in config) Dakahlia eg-dk ( 988, 156) El Mansura (Natural Earth populated place, pop 600,000, pinned in config) Sohag eg-shg (1015, 868) Sohag (Natural Earth populated place, pop 600,000, pinned in config) Suez eg-suz (1139, 321) Suez (Natural Earth populated place, pop 508,335, pinned in config) Minya eg-mn ( 887, 620) El Minya (Natural Earth populated place, pop 500,000, pinned in config) Beni Suef eg-bns ( 939, 463) Beni Suef (Natural Earth populated place, pop 489,450, pinned in config) Asyut eg-ast ( 947, 768) Asyut (Natural Earth populated place, pop 420,585, pinned in config) Gharbia eg-gh ( 931, 194) Tanta (Natural Earth populated place, pop 404,901, pinned in config) Faiyum eg-fym ( 905, 428) El Faiyum (Natural Earth populated place, pop 316,772, pinned in config) Aswan eg-asn (1192, 1255) Aswan (Natural Earth populated place, pop 313,442, pinned in config) Qena eg-kn (1168, 927) Qena (Natural Earth populated place, pop 302,027, pinned in config) Damietta eg-dt (1044, 96) Dumyat (Natural Earth populated place, pop 299,459, pinned in config) Sharqia eg-shr (1001, 228) Zagazig (Natural Earth populated place, pop 285,097, pinned in config) Monufia eg-mnf ( 917, 225) Shibin el Kom (Natural Earth populated place, pop 182,900, pinned in config) North Sinai eg-sin (1313, 144) El Arish (Natural Earth populated place, pop 178,651, pinned in config) Qalyubia eg-kb ( 960, 248) Benha (Natural Earth populated place, pop 167,029, pinned in config) Red Sea eg-ba (1319, 759) Hurghada (Natural Earth populated place, pop 157,204, pinned in config) Kafr El Sheikh eg-kfs ( 923, 144) Kafr el Sheikh (Natural Earth populated place, pop 143,970, pinned in config) Matrouh eg-mt ( 419, 88) Matruh (Natural Earth populated place, pop 103,470, pinned in config) New Valley eg-wad ( 853, 1039) El Kharga (Natural Earth populated place, pop 49,991, pinned in config) South Sinai eg-js (1292, 599) El Tur (Natural Earth populated place, pop 27,628, pinned in config) Beheira eg-bh ( 860, 152) pinned lon/lat [30.47, 31.05] Ismailia eg-is (1103, 227) pinned lon/lat [32.26, 30.59] Notes ----- (1) The Nile, its Rosetta and Damietta branches and the Suez Canal are sea water (ocean), 1 to 2 tiles wide at every detail (the real river is under a kilometre wide), so boats can use them and they split the land: the central delta between the branches is an island (Gharbia, Monufia, Kafr El Sheikh), Sinai is cut off by the canal (North and South Sinai), and the west and east banks of the Nile meet by land only at the Aswan dams (the land between the river and Lake Nasser) and along the lake's rim at the Sudan border. (2) Lake Nasser is SRTM's flattened water surface (179 m, February 2000, a high lake) read from the zoom-11 terrain tiles, not Natural Earth's smoother polygon, so it keeps its branching khors. It stops at the Wadi Halfa salient, which Natural Earth gives to Sudan, so it is water outside the country there and the lake keeps a one-tile rim along it. (3) Natural Earth 1:10m has no delta lakes and no Faiyum lakes: Manzala, Burullus, Idku and Bardawil are the lagoons Natural Earth draws as inlets of the sea (closed at their mouths), and Qarun, the two Wadi El Rayan lakes and Siwa are read from SRTM's flattened water surfaces in the zoom-12 terrain tiles (115 more tiles of the same terrarium source). Lake Maryut (no flat SRTM surface, pumped below sea level) and the Toshka lakes (flat in SRTM, February 2000; they have shrunk and grown again since) are left out, and their 2004 water in the colour imagery is drawn as the desert around it; Lake Timsah and the Little Bitter Lake are not in Natural Earth; the canal band runs through them. (4) The rows are UTM grid rows, not parallels: row 0 runs from 31.72 N at the map corners to 32.03 N in the middle, the last row from 21.66 N to 21.86 N. (5) Natural Earth 5.1.1 still has Tiran island as Egyptian (Saudi since 2017) and the Halaib triangle as Egyptian (de facto administration); the Wadi Halfa salient and Bir Tawil are Sudan / unclaimed and are water. (6) Natural Earth's Luxor governorate is only the city (12 km2; the rest of today's governorate is inside its Qena polygon); the Luxor spawn is the city. (7) Beheira and Ismailia are pinned to the coordinates of the Natural Earth populated places Damanhur and Ismailia (their NAME fields are not valid UTF-8, so they are pinned by coordinates). Flags are ISO 3166-2:EG codes (eg-c = Cairo) with no images in the repository, like Switzerland's ch-*.