forked from Gro/member-map
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
67539333bf | |||
|
85d932e23e | ||
|
f6560772cb | ||
|
187faf6cd5 |
@ -4,7 +4,7 @@ ARG PLZ_DATA=Postleitzahlengebiete_-_OSM.geojson
|
||||
ARG PLZ_HIGHLIGHT=wtf_member_plz_prefixes.json
|
||||
|
||||
# Set up environment with dependencies
|
||||
RUN apt-get update && apt-get install libblas-dev python3-pip libgeos-dev wget optipng imagemagick -y
|
||||
RUN apt-get update && apt-get install libblas-dev python3-pip libgeos-dev libgdal-dev wget optipng imagemagick -y
|
||||
COPY requirements.txt ./
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
|
36
main.py
36
main.py
@ -28,27 +28,23 @@ def main(
|
||||
data.loc[data["plz"].str.startswith(plz_prefix), "highlighted"] = True
|
||||
|
||||
# TODO: This should instead be a proper geo spatial projection
|
||||
coordinate_transform = np.array([[1.0, 1.6]]).T
|
||||
coordinate_transform = np.array([[1.0, 1.0]]).T
|
||||
|
||||
ax = plt.axes(aspect="equal")
|
||||
for bundesland in data["bundesland"].unique():
|
||||
bundesland_df = data[data["bundesland"] == bundesland]
|
||||
union = bundesland_df.unary_union
|
||||
union = data.unary_union
|
||||
for geom in getattr(union, "geoms", [union]):
|
||||
ax.fill(
|
||||
*geom.exterior.xy,
|
||||
fc=map_background_color,
|
||||
ec=image_background_color,
|
||||
linewidth=0.1,
|
||||
)
|
||||
|
||||
if any(data["highlighted"]):
|
||||
union = data[data["highlighted"]].unary_union
|
||||
for geom in getattr(union, "geoms", [union]):
|
||||
ax.fill(
|
||||
*(geom.exterior.xy * coordinate_transform),
|
||||
fc=map_background_color,
|
||||
ec=image_background_color,
|
||||
linewidth=0.1,
|
||||
)
|
||||
|
||||
if not any(bundesland_df["highlighted"]):
|
||||
continue
|
||||
|
||||
union = bundesland_df[bundesland_df["highlighted"]].unary_union
|
||||
for geom in getattr(union, "geoms", [union]):
|
||||
ax.fill(
|
||||
*(geom.exterior.xy * coordinate_transform),
|
||||
*geom.exterior.xy,
|
||||
fc=map_accent_color,
|
||||
ec=None,
|
||||
)
|
||||
@ -87,19 +83,19 @@ if __name__ == "__main__":
|
||||
parser.add_argument(
|
||||
"--img-bg-color",
|
||||
type=str,
|
||||
default="#EDEFEB",
|
||||
default="#FFFFFF",
|
||||
help="Color outside of the map, the image file background.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--map-bg-color",
|
||||
type=str,
|
||||
default="#202020",
|
||||
default="#4279BC",
|
||||
help="Color code for the background map, non highlighted areas.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--map-accent-color",
|
||||
type=str,
|
||||
default="#EF7C21",
|
||||
default="#DA532C",
|
||||
help="Color code for the highlighted areas on the map.",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
@ -1,2 +1,3 @@
|
||||
numpy==1.26.4
|
||||
geopandas==0.11.1
|
||||
matplotlib==3.6.2
|
Loading…
Reference in New Issue
Block a user