Fix for dynamic js map embed in blog output
This commit is contained in:
parent
f508be0740
commit
bff3cb22fa
33
index.qmd
33
index.qmd
|
@ -352,6 +352,7 @@ shift from above-ground to underground tests, starting with the year 1962.
|
|||
## Locations
|
||||
|
||||
Finally, let's view a map of the world with the explosions marked, separated by country.
|
||||
|
||||
::: {.content-visible when-format="html"}
|
||||
Hovering over individual explosions will show their year
|
||||
while a click will open more information in a panel.
|
||||
|
@ -417,7 +418,6 @@ for country in country_colors.keys():
|
|||
),
|
||||
).add_to(fg)
|
||||
folium.LayerControl().add_to(m)
|
||||
m
|
||||
```
|
||||
|
||||
::: {.content-visible when-format="html"}
|
||||
|
@ -425,40 +425,30 @@ m
|
|||
```{python}
|
||||
# | label: fig-worldmap-html
|
||||
# | fig-cap: World map of nuclear explosions, 1945-98
|
||||
html_string= m.get_root().render()
|
||||
with open("map.html", "w") as f:
|
||||
f.write(html_string)
|
||||
m
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
::: {.content-visible unless-format="html" width=80%}
|
||||
::: {.content-hidden when-format="html" width=80%}
|
||||
|
||||
```{python}
|
||||
# | label: fig-worldmap-static
|
||||
# | fig-cap: World map of nuclear explosions, 1945-98
|
||||
# ENSURE SELENIUM IS INSTALLED
|
||||
from PIL import Image
|
||||
from IPython.display import Image as IImage
|
||||
import io
|
||||
img = m._to_png()
|
||||
|
||||
bimg = io.BytesIO(img)
|
||||
Image.open(bimg).save("map.png")
|
||||
IImage(url="map.png")
|
||||
```
|
||||
|
||||
:::
|
||||
![World map of nuclear explosions, 1945-98](./map.png){#fig-worldmap-static}
|
||||
|
||||
::: {.callout-warning .content-visible when-format="markdown"}
|
||||
Interactive maps not working
|
||||
|
||||
Unfortunately, as of right now folium maps rendered within a quarto document do
|
||||
not seem to translate terribly well into an astro blog such as this.
|
||||
This is why, for now, there is only a static image here.
|
||||
|
||||
This is very sad, but for the time being feel free to download and peruse
|
||||
the full repo with source documents [here](https://git.martyoeh.me/datasci/nuclear_explosions),
|
||||
as well as the [pdf](./index.pdf)
|
||||
or [docx](./index.docx) versions.
|
||||
:::
|
||||
|
||||
While there are undoubtedly more aspects of the data that provide interesting
|
||||
|
@ -472,6 +462,17 @@ by quarto, fully reproducible.
|
|||
Additionally, we can see how additional projects can be included to produce
|
||||
interactive graphs and maps with tools such as folium and geopandas.
|
||||
|
||||
::: {.callout-note .content-visible when-format="markdown"}
|
||||
|
||||
Accessing other views
|
||||
|
||||
Feel free to download and peruse the full repo with source documents
|
||||
[here](https://git.martyoeh.me/datasci/nuclear_explosions),
|
||||
as well as the [pdf](2024-07-02-nuclear-explosions-analysis/index.pdf)
|
||||
or [docx](2024-07-02-nuclear-explosions-analysis/index.docx) versions.
|
||||
|
||||
:::
|
||||
|
||||
## References
|
||||
|
||||
::: {#refs}
|
||||
|
|
1320
output.html
Normal file
1320
output.html
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,18 +1,36 @@
|
|||
#!/usr/bin/env python3
|
||||
# Simply move the map.png file to the blog output dir
|
||||
# since it won't do so automatically for pillow creations.
|
||||
# A HACK TO PUT THE LEAFLET JS INTO THE CORRECT PUBLIC BLOG DIR
|
||||
# will have to be changed when the hardcoded public dir path changes
|
||||
|
||||
import shutil
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
if not os.getenv("QUARTO_PROJECT_RENDER_ALL"):
|
||||
sys.exit(0)
|
||||
|
||||
relative_pub_dir = Path(
|
||||
"../../../../public/blog/2024-07-02-nuclear-explosions-analysis/"
|
||||
)
|
||||
|
||||
q_output_dir = os.getenv("QUARTO_PROJECT_OUTPUT_DIR")
|
||||
if not q_output_dir:
|
||||
print(f"ERROR: output dir: {q_output_dir} DOES NOT EXIST.")
|
||||
sys.exit(1)
|
||||
|
||||
src = "map.png"
|
||||
dest = Path(q_output_dir).joinpath(relative_pub_dir)
|
||||
|
||||
shutil.copy(src, q_output_dir)
|
||||
# Correct relative WORKING DIR DOES NOT EXIST
|
||||
if not dest.is_dir():
|
||||
print(f"ERROR: map.html destination path: {dest} DOES NOT EXIST.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
src = "map.html"
|
||||
|
||||
shutil.copy(src, dest)
|
||||
|
||||
print("sucessfully moved map.html to ")
|
||||
|
|
Loading…
Reference in a new issue