Run

$AlbumDirectory="C:\\drorbn\\Album\\2026.07.24-25_Banff_to_Calgary_Ride_(and_paddle!)";

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=100,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 Friday after the last talk I rode downhill and downwind from Banff to Cochrane, with Dylan to Canmore, but then he turned back to catch his bus) . Riding < a href =. ./Equipment/Bromp/index . html > Bromp < /a >, 97.4km with 510m of ascents . So fast it was! So much easier than the ride uphill and upwind < a href =. ./2026.07.18 - 19_Calgary_to_Banff_Ride/index . html > a week before < /a > !
  < p > Then on Saturday I rode on from Cochrane to the Calgary Airport, 62.1km with 490m of ascents; also mostly downhill and downwind and very fast . On km37.7 at Shouldice Park, already within Calgary and riding along the Bow River, I stumbled upon a place that rented out kayaks for one way rides . So I rented one and paddled it 12.2km down the Bow to their designated return area at Saint Patrick’s Island (the Bow is so fast that I hardly needed to paddle) . I saw some juvenile bald eagles on the way!
< p > From Saint Patrick’s Island, a rideshare back to Shouldice Park, and on to the airport .
 < p > There was smoke from forest fires and the visibility wasn’t great . Some views were missed!

PensieveDirectives={
"TitleNotes" -> "On Friday after the last talk I rode downhill and downwind from Banff to Cochrane. With Dylan to Canmore, where he turned back to catch his bus. Riding <a href=../Equipment/Bromp/index.html>Bromp</a>, 97.4km with 510m of ascents. So fast it was! So much easier than the ride uphill and upwind <a href=../2026.07.18-19_Calgary_to_Banff_Ride/index.html>a week before</a>!
<p>Then on Saturday I rode on from Cochrane to the Calgary Airport, 62.1km with 490m of ascents; also mostly downhill and downwind and very fast. On km37.7 at Shouldice Park, already within Calgary and while riding along the Bow River, I stumbled upon a place that rented out kayaks for one way rides. So I rented one and paddled it 12.2km down the Bow to their designated return area on Saint Patrick's Island (the Bow is so fast that I hardly needed to paddle). I saw some juvenile bald eagles on the way!
<p>From Saint Patrick's Island, a rideshare back to Shouldice Park, and on to the airport.
<p>There was smoke from forest fires and the visibility wasn't great. Some views were missed!",
"ImageComments" ->{}
}