Run

$AlbumDirectory="C:\\drorbn\\Album\\2026.07.22_Mount_Rundle_Hike";

res=800;
fs=FileNames[$AlbumDirectory<>"/*.gpx"];
fs=Complement[fs,
Union[
StringReplace[{"@.gpx"->".gpx", "@.kml"->".kml"}]/@Select[fs,StringPart[#,-5]=="@"&]
]
]
data=DeleteCases[
Union@Table["Geometry"/.Import[f,"Data"],{f,fs}],
GeoPosition[{_,None}], ∞
];
BruceData=Union["Geometry"/.Import[$AlbumDirectory<>"/../Summaries/Bruce_Trail.gpx","Data"]];
map0=GeoGraphics[{Red,data},GeoScaleBar->"Kilometers", ImageSize ->res];
AllTracks=Get["C:\\drorbn\\Album/Summaries/AllTracks.m"];

Rasterize[
map=GeoGraphics[{Thickness[0.001], Purple, BruceData,Thickness[0.0016],Blue, AllTracks,Thickness[0.0024], Red,data},
GeoScaleBar->"Kilometers",
ImageSize ->res,
GeoRange->(GeoRange/.Options[map0])
],
RasterSize ->res
]
Export[$AlbumDirectory<>"/Path%.png",map];

map3D=Echo@ResourceFunction["GeoElevationGraphics3D"][
{Purple, BruceData,Thick, Blue, AllTracks,Red,data},
GeoGridRangePadding->0,
GeoScaleBar->"Kilometers",
ImageSize ->res,
GeoRange->(GeoRange/.Options[map0])
];
Export[$AlbumDirectory<>"/Path3D.png",map3D]

PathsLocation=Module[{R=3000,r=5,n=6,res=1000},
ImageAssemble[
Partition[#,3]&@Table[
Rasterize[
GeoGraphics[{Thickness[(2n-k)/6000],Purple, BruceData,Thickness[(2n-k)/4000],Blue,AllTracks, Red,Thickness[(2n-k)/1500],data},
GeoCenter->Mean@Cases[data,GeoPosition[l_List]:>Mean[l],∞] ,
GeoRange->Quantity[R(((r/R))^((k-1)/(n-1))),"Kilometers"],
GeoScaleBar->"Kilometers",
ImageSize->res
],
RasterSize->res
],
{k,n}],
"Fit",Background -> White]
]
Export[$AlbumDirectory<>"/PathsLocation.png",PathsLocation]

Map with photo thumbnails

imgs=FileNames["*.jpg",$AlbumDirectory];
map=GeoGraphics[{
GeoMarker[
GeoPosition[{1,1}*Lookup[Import[#,"Exif"],{"GPSLatitude","GPSLongitude"}]], Graphics@Rasterize[Import[#],RasterSize ->res],
"Scale"->0.0075
]& /@ imgs,
Thickness[0.0016], Purple, BruceData,Blue, AllTracks,Thickness[0.0024], Red,data
},
GeoScaleBar->"Kilometers",
ImageSize ->res,
GeoRange->(GeoRange/.Options[map0])
]
Export[$AlbumDirectory<>"/PathWithImages.png",map]

Image Directory

If[Head[PensieveDirectives]===List, ImageComments="ImageComments"/.PensieveDirectives,ImageComments={}];
(Interpretation[ImageResize[Import@#,400],#]->(#/.ImageComments/.(#->"")))&/@FileNames["*.jpg"|"*.jpeg"|"*.png"|"*.mp4", $AlbumDirectory]

Export

On my first time in Banff, back in 1990 and when I was 24, I climbed Mt . Rundle along with a group from the summer school I was attending . I remember it as a tough hike! We ended up returning after dark . So now in 2026 I’ve joined a group from the < a href = https : // drorbn . net/ba26 > conference < /a > I’m now attending, hoping to make it to the top once again . But that didn’t happen - as we went higher and higher, more and more people dropped out, until eventually, I dropped out too, roughly at the tree line .
 < p > A 17.2km hike, with 1, 260m of ascents (and descents, which were equally tough) .

PensieveDirectives={
"TitleNotes" -> "On my first visit to Banff, back in 1990 and when I was 24, I climbed Mt. Rundle along with a group from the summer school I was attending. I remember it as a tough hike! We ended up returning after dark. So now in 2026 I've joined a group from the <a href=https://drorbn.net/ba26>conference</a> I'm now attending, hoping to make it to the top once again. But that didn't happen - as we went higher and higher, more and more people dropped out, until eventually, I dropped out too, roughly at the tree line.
<p>A 17.2km hike, with 1,260m of ascents (and descents, which were equally tough).",
"ImageComments" ->{}
}