# At ZL16 there seems to be an issue with water bodies, especially rivers (natural:water).\r
# Let's see if we can correct that\r
\r
- # natural:water\r
- ntrl_water = False\r
- ntrl_idx = 0\r
- for lyr in self._lyrnames:\r
- if lyr[0] == "natural" and lyr[1] == "water":\r
- ntrl_water = True\r
- break\r
- ntrl_idx = ntrl_idx + 1\r
-\r
- if ntrl_water == True:\r
- \r
- # We'll go through all layers and "shavve off" excess.\r
- # This way we can hopefully correct incorrect line and polygon renders.\r
- for l in range(0, len(layers)):\r
- if l < ntrl_idx: # <- We don't want to load the target layer itself\r
- lyrpix = layers[l].load()\r
- wtr_pix = layers[ntrl_idx].load()\r
- for y in range(0, self._tile.height):\r
- for x in range(0, self._tile.width):\r
- lp = lyrpix[x,y]\r
- wp = wtr_pix[x,y]\r
- if lp[3] > 0:\r
- a = 255 - lp[3]\r
- if a < wp[3]:\r
- c = (wp[0], wp[1], wp[2], a)\r
- wtr_pix[x,y] = c\r
-\r
- # water:river\r
- river_water = False\r
- river_idx = 0\r
- for lyr in self._lyrnames:\r
- if lyr[0] == "water" and lyr[1] == "river":\r
- river_water = True\r
- break\r
- river_idx = river_idx + 1\r
-\r
- if river_water == True:\r
- \r
- # We'll go through all layers and "shavve off" excess.\r
- # This way we can hopefully correct incorrect line and polygon renders.\r
- for l in range(0, len(layers)):\r
- if l < river_idx and l != ntrl_idx: # <- We don't want to load the target layer itself\r
- lyrpix = layers[l].load()\r
- wtr_pix = layers[river_idx].load()\r
- for y in range(0, self._tile.height):\r
- for x in range(0, self._tile.width):\r
- lp = lyrpix[x,y]\r
- wp = wtr_pix[x,y]\r
- if lp[3] > 0:\r
- a = 255 - lp[3]\r
- if a < wp[3]:\r
- c = (wp[0], wp[1], wp[2], a)\r
- wtr_pix[x,y] = c\r
+ # These files will need to be generated after manual check of the orthos\r
+ if os.path.isfile(mstr_datafolder + "z_orthographic/data" + self._latlngfld + "/water/" + str(self._ty) + "_" + str(self._tx)) == True:\r
+ # natural:water\r
+ ntrl_water = False\r
+ ntrl_idx = 0\r
+ for lyr in self._lyrnames:\r
+ if lyr[0] == "natural" and lyr[1] == "water":\r
+ ntrl_water = True\r
+ break\r
+ ntrl_idx = ntrl_idx + 1\r
+\r
+ if ntrl_water == True:\r
+ \r
+ # We'll go through all layers and "shavve off" excess.\r
+ # This way we can hopefully correct incorrect line and polygon renders.\r
+ for l in range(0, len(layers)):\r
+ if l < ntrl_idx: # <- We don't want to load the target layer itself\r
+ lyrpix = layers[l].load()\r
+ wtr_pix = layers[ntrl_idx].load()\r
+ for y in range(0, self._tile.height):\r
+ for x in range(0, self._tile.width):\r
+ lp = lyrpix[x,y]\r
+ wp = wtr_pix[x,y]\r
+ if lp[3] > 0:\r
+ a = 255 - lp[3]\r
+ if a < wp[3]:\r
+ c = (wp[0], wp[1], wp[2], a)\r
+ wtr_pix[x,y] = c\r
+\r
+ # water:river\r
+ river_water = False\r
+ river_idx = 0\r
+ for lyr in self._lyrnames:\r
+ if lyr[0] == "water" and lyr[1] == "river":\r
+ river_water = True\r
+ break\r
+ river_idx = river_idx + 1\r
+\r
+ if river_water == True:\r
+ \r
+ # We'll go through all layers and "shavve off" excess.\r
+ # This way we can hopefully correct incorrect line and polygon renders.\r
+ for l in range(0, len(layers)):\r
+ if l < river_idx and l != ntrl_idx: # <- We don't want to load the target layer itself\r
+ lyrpix = layers[l].load()\r
+ wtr_pix = layers[river_idx].load()\r
+ for y in range(0, self._tile.height):\r
+ for x in range(0, self._tile.width):\r
+ lp = lyrpix[x,y]\r
+ wp = wtr_pix[x,y]\r
+ if lp[3] > 0:\r
+ a = 255 - lp[3]\r
+ if a < wp[3]:\r
+ c = (wp[0], wp[1], wp[2], a)\r
+ wtr_pix[x,y] = c\r
\r
return layers\r
\r