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.jpg) ------------------- Source the ESA WorldCover Sentinel-2 median L2A (RGBNIR) composite of 2021, v200 (the ESA WorldCover project; made by the ESA WorldCover consortium from Copernicus Sentinel-2 data), its true-colour bands B04, B03 and B02 (the NIR band not used): one cloud-optimised GeoTIFF a 1 x 1 degree cell in the open-data bucket https://esa-worldcover-s2.s3.eu-central-1.amazonaws.com/rgbnir/2021//ESA_WorldCover_10m_2021_v200__S2RGBNIR.tif, read at its overview level 4 (750 pixels a degree), only that level, by range requests (Front+ 1.0.9 step s02, 16 October 2026; every piece in mapdata/DOWNLOADS.txt). 127 cells used; of the cells under the land and its one-tile ring 0 the bucket does not have (open sea) and 0 are missing. Licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/); the terms: https://esa-worldcover.org/en/data-access ("provided free of charge, without restriction of use"). Attribution © ESA WorldCover project / Contains modified Copernicus Sentinel data (2021) processed by ESA WorldCover consortium Grid the full map grid, 1800 x 1608: RGB, 8 bits a channel, sRGB, one texel a tile (0.701 km in the map's projection); JPEG, quality 90. Changed the source pixels averaged in blocks of 2 x 2 (2.4 x 2.6 of them a texel, north-south x east-west, at the land's middle), reprojected with the map's projection onto its grid, each texel the area average of the pixels in it in linear light (reflectance); water left out by the map's own land mask, and on all of this map's land also the imagery's own water (dark and blue, or the desert lakes' green, turquoise and grey pixels); clouds left out under the game's snow line (mean reflectance over 1.50 and spread under 0.05 of the mean; 0 texels touched); the 10,793 land texels with no data or mostly left-out pixels filled from the land round them, every texel that is not land from the nearest land texel; the tone: 1.6 x reflectance, to the power 0.9, highlights rolled off above 0.6, the colours 1.45 x as far from grey, exposure 1. Built 2026-10-16 (mapgen_imagery.py). Egypt takes the desert water rule on all its land ("water_reach": "all"): a desert has no dark forest, and the Toshka lakes, water in 2021, are dry land on this map (1.0.8's Blue Marble rule ran on all the land too). Land mean colour 216, 182, 137 (sRGB), spread 26 / 20 / 17; 0 of 2,032,511 land texels had no source pixel with data (0.00%). 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, while the Realistic look is on (the Settings switch is the default for every map; each map can change it on the Singleplayer page; off, it draws the palette). Land a match raises where this map has sea keeps 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-*.