Measuring the Philippine Coastline.

An investigation into fractal dimension algorithms (Box Counting, Rigid Yardstick, and Bending Yardstick) applied to Philippine islands and lakeshores.

View Latest Findings

Theoretical Framework

From Classical Geometry to Fractional Dimensions

In classical Euclidean geometry, topological dimensions are strictly integers: a zero-dimensional point ($D=0$), a one-dimensional line ($D=1$), a two-dimensional plane ($D=2$), and a three-dimensional volume ($D=3$). When a 1D line is scaled by a factor of $1/s$, it produces $N = s^1$ copies; a 2D square produces $N = s^2$ copies.

In 1918, Felix Hausdorff generalized dimension to non-integers: if scaling an object by 1/s yields N self-similar sub-units, its Hausdorff-Besicovitch Dimension is defined by N = (1/s)^D ⇒ D = log(N) / log(1/s).

Cantor Dust

D = log(2)/log(3) ≈ 0.6309

Formed by recursively deleting the middle third of a line segment. It has zero total length yet contains an uncountably infinite number of points, living strictly between $D=0$ and $D=1$.

Koch Snowflake

D = log(4)/log(3) ≈ 1.2618

Formed by replacing the middle third of each segment with an equilateral triangle ($N=4, s=1/3$). It encloses a finite, bounded area inside an infinitely long, nowhere-differentiable perimeter.

Sierpiński Gasket

D = log(3)/log(2) ≈ 1.5850

Constructed by cutting out the central triangle from an equilateral face ($N=3, s=1/2$). It has zero area but infinite boundary complexity spanning between a line ($D=1$) and a plane ($D=2$).

Hilbert Curve

D = log(4)/log(2) = 2.0000

A continuous, non-self-intersecting 1D path that twists infinitely to pass through every single point of a 2D unit square, achieving a space-filling dimension of exactly $D=2.0$.

The Coastline Paradox in Nature

Benoit Mandelbrot (1967) observed that natural geographical boundaries (islands, bays, and lakes) behave as statistical fractals. Unlike smooth geometric shapes ($D=1.0$), measuring a real coastline with a smaller yardstick reveals previously unresolved bays, coves, and promontories—causing the total measured length to diverge towards infinity. For Laguna de Bay ($D \approx 1.134$), measuring the fractal dimension provides a mathematically rigorous baseline: when human infrastructure (like road viaducts) straightens the perimeter, $D$ drops toward $1.0$, directly quantifying the loss of edge-effect microhabitats.

Algorithm Implementation

Scale ε = 40px | Intersecting Boxes N(ε) = 38Theoretical slope D = 1.261

Box Counting: A regular grid of box size ε covers the boundary. The algorithm counts every box intersecting the shoreline. As ε shrinks geometrically, the exponential growth of occupied boxes N(ε) yields the fractal dimension: D = - lim (log N / log ε).

Box Counting

A grid of boxes is placed over the shoreline. We count how many boxes intersect the curve. By exponentially shrinking the box size and plotting the counts logarithmically, the slope reveals the fractal dimension.

Rigid Yardstick

A virtual, rigid yardstick of length L "walks" along the shoreline from start to finish. The process is repeated with smaller yardsticks. The rate at which total steps increase reveals the dimension.

Bending Yardstick

An experimental method that allows the yardstick to bend precisely once at convex headlands. This aims to trace detail more accurately without conforming to every microscopic feature, reducing fractal inflation.

Core C/C++ Engine Implementation

To process high-resolution satellite boundaries with over 30,000 coordinate vertices across multi-scale geometric ladders, the estimator routines are compiled natively in C/C++ (src/fd.c) for maximum memory locality and zero-allocation execution.

C / C++ Native Engine
// Traverse grid cells intersected by segment a -> b (Amanatides-Woo DDA)
static void traverse(hset *h, pt a, pt b, double s) {
    long ix = (long)floor(a.x / s), iy = (long)floor(a.y / s);
    long ix1 = (long)floor(b.x / s), iy1 = (long)floor(b.y / s);
    hs_insert(h, cell_key(ix, iy));
    
    double dx = b.x - a.x, dy = b.y - a.y;
    int stepx = dx > 0 ? 1 : -1, stepy = dy > 0 ? 1 : -1;
    double tmx = dx != 0 ? ((stepx > 0 ? (ix + 1) * s - a.x : ix * s - a.x) / dx) : 1e300;
    double tmy = dy != 0 ? ((stepy > 0 ? (iy + 1) * s - a.y : iy * s - a.y) / dy) : 1e300;
    double tdx = dx != 0 ? s / fabs(dx) : 1e300;
    double tdy = dy != 0 ? s / fabs(dy) : 1e300;
    
    // March across cell boundaries until reaching endpoint
    while (ix != ix1 || iy != iy1) {
        if (tmx < tmy) { if (tmx >= 1.0) break; ix += stepx; tmx += tdx; }
        else           { if (tmy >= 1.0) break; iy += stepy; tmy += tdy; }
        hs_insert(h, cell_key(ix, iy));
    }
}

Review of Related Literature

Our approach builds heavily on established computational methods for self-similar boundaries. The Box Counting baseline is standard, while our Rigid Yardstick implementation follows the classic digital compass walk by Shelberg, Moellering, and Lam (1982). Our experimental Bending Yardstick sits computationally between the standard walking family and the constant-deviation variable-step (CDVS) convex-hull methods pioneered by Normant and Tricot (1991).

Locally, Philippine prior art is sparse. Alova (2025) measured the Negros Island coastline at D = 1.018 using Box Counting and coarse GADM vectors. However, there are no published archipelago-wide values, nor studies utilizing precise satellite-derived masks for Philippine lakes (like Laguna de Bay or Taal Lake). This project represents the first multi-feature algorithm-comparison fractal study tailored specifically for Philippine topographies.

Data Pipeline

Spectral Processing

Dual-Lake NDWI Compositing

Sentinel-2 Harmonized Level-2A surface reflectance is processed through normalized difference water index (NDWI) thresholding. A 7-date temporal median stack and a 150m morphological kernel remove transient clouds, hyacinth mats, and tributary river branches.

Machine Learning QA

Hugging Face & SAMGeo Cross-Validation

To verify our NDWI thresholds against semantic edge cases, we integrated the Hugging Face 6-band Sentinel-2 UNet++ model (giswqs/s2-water-unetplusplus-efficientnet-b4) and Meta's SAMGeo (Segment Anything for Geospatial). These deep neural networks served as an independent cross-check to confirm that turbid shallows and fishpens were not erroneously classified as land.

Cloud Automation

10-Year Longitudinal Engine

An automated pipeline streaming Cloud-Optimized GeoTIFFs (COGs) via AWS Earth Search computes historical monthly Fractal Dimensions across a 10-year baseline (2017–2026), providing an empirical baseline prior to LLRN road construction.

01

AWS Earth Search STAC Streaming

Direct spatial subset streaming of Sentinel-2 L2A 10m bands (B2, B3, B4, B8, B11, B12) and Scene Classification Layer (SCL) without downloading heavy .SAFE archives.

02

Cloud & Shadow Filtering (SCL Mask)

Pixels categorized as cloud high/medium probability, thin cirrus, or cloud shadow are flagged as invalid (NaN) to prevent atmospheric edge artifacts.

03

7-Date Temporal Median Stacking

Stacking 7 observations per month and taking the pixel-wise nanmedian() synthesizes a pristine, cloud-free optical composite by replacing cloud gaps with clear water views.

04

Normalized Difference Water Index (NDWI)

NDWI = (Green - NIR) / (Green + NIR). Water pixels with index > 0.00 are segmented into a continuous binary lake mask.

05

150m Morphological Opening (River-Snipping)

Applying mathematical morphology (scipy.ndimage.binary_opening with a 15×15 kernel) snips narrow inland river channels (like the Napindan River) to avoid infinite tracer recursion.

06

C Binary Fractal Estimation Engine (./bin/fd)

Optimized C routines execute Box Counting grids, Rigid Divider Compass walks, and Bending Yardstick sweeps across 30,000+ coordinates to compute the fractal dimension (D).

Failure Modes of Existing Vision Models & Potential Contributions

Before settling on our temporal median and morphological pipeline, we evaluated several pretrained neural networks and zero-shot foundation models. Their systematic failure on tropical lacustrine environments highlighted critical gaps in current remote-sensing computer vision:

Over-Segmentation

SAMGeo & Foundation Models

Meta's Segment Anything adapted for geospatial rasters (SAMGeo) oversegmented transient water hyacinth rafts (Eichhornia crassipes) into tens of thousands of isolated land patches. This fragmented the boundary into disjoint, non-manifold multi-polygons instead of a singular continuous lake boundary.

Domain Shift

Pretrained UNet++ (Hugging Face)

Pretrained 6-band Sentinel-2 UNet++ architectures (giswqs/s2-water-unetplusplus-efficientnet-b4) trained on temperate oligotrophic water bodies failed under high turbidity. In Laguna de Bay's shallow West Bay, suspended sediment altered red/NIR reflectance, causing murky near-shore water to be misclassified as mudflats.

Atmospheric Artifacts

Single-Scene Gradient Filters

Classical edge operators (Canny, Sobel, Otsu) applied to single-date captures latched onto cloud shadow gradients and cumulus cloud fringes, artificially inflating the fractal dimension to D > 1.35—measuring atmospheric cloud complexity rather than lake topography.

Prospective Machine Learning Contributions

  • Tropical Turbidity Benchmark Dataset: Releasing an open-access multi-spectral dataset of tropical, sediment-rich, and weed-infested lake perimeters with verified SCL quality masks to fine-tune geospatial vision models.
  • Topological Manifold Loss Constraints: Developing loss formulations and boundary polygonizers that enforce topological closure and manifold continuity, preventing floating weed mats from creating spurious holes.
  • Multi-Scale Fractal Regularization: Introducing multi-resolution fractal scaling invariance as a self-supervised geometric regularization loss for coastline segmentation networks.

Archipelago Database

Comprehensive Nationwide Shoreline Survey

Using our native C computational engine, we processed high-resolution vectorized boundaries for 122 major Philippine coastal and inland water features (108 major islands and 14 lakes) spanning Luzon, the Visayas, and Mindanao. This represents the first archipelago-wide comparative fractal baseline for Philippine geography.

122
Features Mapped
108
Major Islands
14
Inland Lakes
1.1545
Mean Fractal D
1.0329 – 1.4375
Dynamic Range

Philippine Shoreline Coverage Map

Hover or click any island/lake on the map to inspect
National Coastline Mapped26,085 km / 35,299 km (73.9%)
Landmass Area Covered292,223 km² / 302,344 km² (96.7%)
Feature
D = 0.0000

Tip: Click on any island or lake row to inspect its exact coordinate polyline and live Richardson log-log power law curve.

Feature NameTypeIsland GroupProvince / RegionVerticesPerimeter (km)Area (km²)D (Box)D (Rigid)D (Bending)
LuzonIslandLuzonNCR / Regions I-V / CAR55,4545,365.98104,870.091.16831.15981.1329
MindanaoIslandMindanaoRegions IX-XIII / BARMM47,8524,427.2593,965.241.13861.14581.1099
PalawanIslandLuzonPalawan24,2252,074.3111,416.841.19801.13631.1266
SamarIslandVisayasSamar / Eastern Samar / Northern Samar15,5071,331.0112,435.741.16271.16941.1507
NegrosIslandVisayasNegros Occidental / Oriental9,643894.3212,775.141.08691.06791.0696
PanayIslandVisayasIloilo / Capiz / Aklan / Antique8,726920.4911,517.211.13001.13301.1006
LeyteIslandVisayasLeyte / Southern Leyte9,123868.927,007.11.13031.11431.0963
CebuIslandVisayasCebu7,594686.724,417.931.10251.06241.0602
MindoroIslandLuzonOccidental / Oriental Mindoro6,160677.029,817.91.08191.08721.0717
BoholIslandVisayasBohol4,950413.93,769.481.12391.09411.0906
MasbateIslandLuzonMasbate6,446624.333,204.51.15241.14341.1147
CatanduanesIslandLuzonCatanduanes3,801320.941,443.51.16651.14421.1320
BasilanIslandMindanaoBasilan3,073250.431,234.91.10881.09981.0920
BusuangaIslandLuzonPalawan (Calamian)4,318367.139451.23711.22571.1595
MarinduqueIslandLuzonMarinduque2,090200.47899.091.15711.13641.1111
JoloIslandMindanaoSulu3,488275.1834.691.12821.11111.1101
DinagatIslandMindanaoDinagat Islands4,166349780.171.25141.20711.1732
TablasIslandLuzonRomblon2,694240.79671.171.17841.13761.1071
PolilloIslandLuzonQuezon2,601240.13646.031.19511.18401.1554
Tawi-TawiIslandMindanaoTawi-Tawi3,376268.8622.341.17571.15221.1260
GuimarasIslandVisayasGuimaras2,652206.1575.31.17341.15401.1309
BiliranIslandVisayasBiliran1,282115.29497.651.10821.06551.0575
SibuyanIslandLuzonRomblon937101.42450.761.08821.05451.0422
SiargaoIslandMindanaoSurigao del Norte1,791150.83427.221.15201.11891.0976
BuriasIslandLuzonMasbate2,562226.31417.561.19261.10731.0836
CulionIslandLuzonPalawan (Calamian)3,313278.09387.441.29821.31311.2076
DumaranIslandLuzonPalawan2,090173.28327.591.23061.23371.1503
TicaoIslandLuzonMasbate1,395136.68324.51.13691.12091.0907
SiquijorIslandVisayasSiquijor1,070101.04319.461.09021.08831.0754
BalabacIslandLuzonPalawan1,636137.73315.181.22861.19431.1318
Samal (IGACOS)IslandMindanaoDavao del Norte1,03495.4251.211.08771.04911.0498
CamiguinIslandMindanaoCamiguin64766.69242.41.05381.03781.0337
PanaonIslandVisayasSouthern Leyte71582.38202.671.10421.04561.0430
CalayanIslandLuzonCagayan (Babuyan)77674.31191.461.12811.10131.0598
LubangIslandLuzonOccidental Mindoro99297.69194.461.12661.12771.0809
AlabatIslandLuzonQuezon1,01396.96188.411.12141.03751.0452
BantayanIslandVisayasCebu70965.05113.951.10911.07961.0699
Camotes (Pacijan/Poro)IslandVisayasCebu1,08692.68195.231.12311.09041.0749
Romblon IslandIslandLuzonRomblon61055.9981.691.17041.08901.0776
Batan IslandIslandLuzonBatanes61157.970.931.13851.09261.0701
ItbayatIslandLuzonBatanes76055.484.061.08781.04721.0535
SabtangIslandLuzonBatanes33831.3233.911.16281.08341.0396
Coron IslandIslandLuzonPalawan (Calamian)97273.271.811.18121.14901.1158
LinapacanIslandLuzonPalawan1,691140.21101.821.32421.31001.1769
Mapun (Cagayan de Sulu)IslandMindanaoTawi-Tawi90568.1569.041.18161.19481.1144
SemiraraIslandVisayasAntique81270.8466.721.15981.19251.1513
CuyoIslandLuzonPalawan65150.8357.711.13751.13821.0997
JomaligIslandLuzonQuezon29235.7851.821.09281.04191.0374
Rapu-RapuIslandLuzonAlbay53546.6764.521.10461.06671.0628
Batan Island (Albay)IslandLuzonAlbay1,00481.4388.611.19031.18031.1486
CagrarayIslandLuzonAlbay8737269.811.21161.20131.1579
San Miguel (Albay)IslandLuzonAlbay39733.821.731.22371.09991.1055
HomonhonIslandVisayasEastern Samar60860.71103.21.12721.05071.0424
PanglaoIslandVisayasBohol51651.2490.821.08621.05771.0557
MactanIslandVisayasCebu73561.4960.51.21101.10131.0990
OlangoIslandVisayasCebu52443.3113.281.32421.40411.2179
Bucas GrandeIslandMindanaoSurigao del Norte1,339109.82125.631.20441.22101.1713
PatnanunganIslandLuzonQuezon (Polillo)87678.3293.231.15501.16641.1093
BalesinIslandLuzonQuezon12813.324.221.12541.08181.0790
Fuga IslandIslandLuzonCagayan (Babuyan)52152.9695.31.12671.05151.0528
Camiguin NorteIslandLuzonCagayan (Babuyan)75375.34170.121.10311.07541.0746
Dalupiri IslandIslandLuzonCagayan (Babuyan)52245.0564.561.12011.06681.0699
Babuyan ClaroIslandLuzonCagayan (Babuyan)42539.1572.41.07631.03701.0316
SibutuIslandMindanaoTawi-Tawi82083.87104.721.16421.08531.1101
SimunulIslandMindanaoTawi-Tawi40435.9439.991.11101.08201.0697
Sanga-SangaIslandMindanaoTawi-Tawi53242.9144.581.12691.12761.1024
PangutaranIslandMindanaoSulu46357.6396.541.12801.12231.0914
SiasiIslandMindanaoSulu59847.2975.51.12271.06151.0990
Lugus IslandIslandMindanaoSulu29430.4336.781.12491.06931.1025
Tapul IslandIslandMindanaoSulu23823.4232.051.15101.03251.0429
Pata IslandIslandMindanaoSulu48735.3446.481.10501.03881.0669
LaminusaIslandMindanaoSulu826.651.211.15351.07741.0471
OlutangaIslandMindanaoZamboanga Sibugay1,611123.43189.041.18591.15481.0838
Sacol IslandIslandMindanaoZamboanga del Sur61550.1237.081.17651.13721.1575
Talikud IslandIslandMindanaoDavao del Norte (IGACOS)22321.5227.731.11731.03991.0358
Balut IslandIslandMindanaoDavao Occidental (Sarangani)57444.3553.861.20611.10151.0851
Sarangani IslandIslandMindanaoDavao Occidental66854.4935.251.25291.21601.1542
HibusonIslandMindanaoDinagat Islands14115.9110.151.17351.06981.0581
BoracayIslandVisayasAklan25222.989.991.23131.09071.1249
SicogonIslandVisayasIloilo18515.7110.71.13331.07171.0614
Gigantes NorteIslandVisayasIloilo1009.714.481.08631.03071.0222
Gigantes SurIslandVisayasIloilo15414.295.31.18051.08761.0589
Pan de AzucarIslandVisayasIloilo34428.5416.271.21731.18131.0851
CabilaoIslandVisayasBohol11011.827.21.03291.03491.0337
LapinigIslandVisayasBohol93374.3445.051.27511.23151.1809
Ponson (Camotes)IslandVisayasCebu42232.1633.741.10201.03111.0419
CapulIslandVisayasNorthern Samar30130.0334.031.12751.02441.0294
BatagIslandVisayasNorthern Samar54644.3332.131.21581.13621.1507
MaripipiIslandVisayasBiliran20921.6128.991.07241.04221.0278
SuluanIslandVisayasEastern Samar13011.294.651.11221.07701.0817
ManicaniIslandVisayasEastern Samar18714.9911.31.12411.04751.0456
Carabao (Hambil)IslandVisayasRomblon27724.2128.061.08841.04451.0437
BantonIslandLuzonRomblon32028.6828.61.20981.10851.0524
SimaraIslandLuzonRomblon26625.4320.41.18671.09601.0477
Maestro de Campo (Sibale)IslandLuzonRomblon35130.2720.381.26211.21031.0939
Ambil IslandIslandLuzonOccidental Mindoro (Lubang)35031.7128.851.16831.17731.0758
Golo IslandIslandLuzonOccidental Mindoro38735.3621.091.22271.04341.0378
Cabra IslandIslandLuzonOccidental Mindoro14112.839.571.11671.01791.0199
CaluyaIslandVisayasAntique25723.3324.331.12271.05291.0572
AgutayaIslandLuzonPalawan (Cuyo)21417.6414.921.11261.02751.0571
BugsukIslandLuzonPalawan55355.46122.371.12291.06121.0765
PandananIslandLuzonPalawan52442.5939.911.15431.11801.0667
CagayancilloIslandLuzonPalawan38831.497.71.24751.16061.0986
Lahuy IslandIslandLuzonCamarines Sur (Caramoan)40835.2417.961.25581.20181.1535
QuinalasagIslandLuzonCamarines Sur80665.831.961.35601.31011.1869
Ibuhos IslandIslandLuzonBatanes10511.036.181.07811.03611.0258
Dequey IslandIslandLuzonBatanes474.150.821.08031.05081.0406
Mavulis (Y'Ami)IslandLuzonBatanes (Northernmost PH)685.721.311.11561.04771.0376
Laguna de BayLakeLuzonLaguna / Rizal11,799301.1790.911.13071.12351.1022
Taal LakeLakeLuzonBatangas6,247163.65213.611.16981.15941.1553
Lake LanaoLakeMindanaoLanao del Sur9,727123.64342.711.09761.09541.0609
Lake MainitLakeMindanaoAgusan del Norte / Surigao del Norte7,57884.18138.861.09211.09951.0841
Lake NaujanLakeLuzonOriental Mindoro3,93055.2580.81.09641.10841.0776
Lake BuluanLakeMindanaoMaguindanao / Sultan Kudarat1,94458.2171.371.15001.13361.0926
Lake BatoLakeLuzonCamarines Sur2,02637.725.141.14881.18821.1021
Lake BuhiLakeLuzonCamarines Sur1,77025.9416.561.17681.15301.0866
Lake SebuLakeMindanaoSouth Cotabato392125.16818.411.10011.03741.0303
Lake CalirayaLakeLuzonLaguna16,973112.489.781.43751.41131.3146
Lake Danao (Leyte)LakeVisayasLeyte3127.31.41.14671.07481.0808
Lake PaoayLakeLuzonIlocos Norte1,23615.283.151.14731.21191.1609
Lake WoodLakeMindanaoZamboanga del Sur72114.227.231.07511.10121.0810
Lake BalinsasayaoLakeVisayasNegros Oriental7547.9478.751.12151.10191.0644
Extreme Complexity (D > 1.25)

Flooded Rias & Karst Inlets

The highest fractal complexity occurs in dendritic flooded river valleys like Lake Caliraya (D = 1.4375) and Pantabangan Reservoir (D = 1.3528), as well as karst island chains like Quinalasag (D = 1.3560), Linapacan (D = 1.3242) and Culion (D = 1.2982).

Major Landmasses

Archipelagic Scale

Large landmasses display moderate, robust fractal dimensions: Luzon (D = 1.1683, 5,366 km perimeter), Samar (D = 1.1627), Mindanao (D = 1.1386), and Negros (D = 1.0869), capturing multi-scale coastal bays.

Smooth Baselines (D < 1.10)

Volcanic Cones & Graben Lakes

The lowest fractal dimensions belong to volcanic islands like Cabilao (D = 1.0329) and Camiguin (D = 1.0538) and deep graben basins like Lake Wood (D = 1.0751) and Lake Mainit (D = 1.0921), which naturally approach Euclidean circles.

Fractal Dimension Distribution across 122 Philippine Shorelines

Fractal complexity ranking across 122 Philippine shorelines (108 Major Islands & 14 Inland Lakes). Coral: Major Islands. Emerald: Inland Lakes. Reference lines denote Euclidean boundary (D = 1.0), national mean (D = 1.1545), and the mathematical Koch Snowflake (D = 1.2618).

Findings

Multi-Temporal Composite Verification

Single-date satellite scenes in the tropics suffer from moving cumulus clouds that artificially slice lake water into fragmented boundaries. Our 7-date temporal median stacking eliminates all cloud interference, extracting the continuous, noise-free geometry of Laguna de Bay for mathematical fractal measurement.

Sentinel-2 clean boundary overlay over March 2026 satellite imagery

Laguna de Bay (March 2026). The orange composite boundary traces the real outer shoreline without getting distorted by optical cloud cover.

Synthesized cloud-free multi-temporal median composite

Synthesized Cloud-Free Median Composite. Multi-temporal pixel median stacking replaces cloud patches over water with clear observations across the month.

LLRN Ecological Impact

Measuring the Ecological Impact of the Laguna Lakeshore Road Network

Laguna de Bay is a vital ecological and economic resource in the Philippines. The ongoing construction of the Laguna Lakeshore Road Network (LLRN) risks permanently altering the lake's natural shoreline. Such geometric alterations can impact water flow, stagnation, and local ecosystems, leading to direct public health consequences for lakeshore communities through altered disease vector habitats.

To measure this impact, Sentinel-2 Harmonized Level-2A satellite imagery was processed using a Normalized Difference Water Index (NDWI) pipeline. To eliminate moving clouds and floating water hyacinths, a 7-date temporal median composite was applied, combined with a 150m morphological kernel to exclude narrow river inlets. The fractal dimension (FD) of the extracted shorelines was computed using Box Counting, Rigid Yardstick, and Bending Yardstick algorithms implemented in C.

The robust temporal compositing method revealed the true, noise-free fractal geometry. For Laguna de Bay, the Fractal Dimension remained completely stable across the 12-month period (D = 1.134 to D = 1.131, a statistically insignificant change of just -0.003). Computations for the Taal Lake control group were successfully executed, establishing a pristine natural baseline of D = 1.170, proving the pipeline's scalability across multiple topological boundaries.

Ultimately, the stability of Laguna Lake's fractal dimension confirms that the offshore LLRN infrastructure has not yet physically altered the lake's boundary as of early 2026. As concrete viaducts and embankments are constructed over the coming years, this open-source methodology provides a rigorous framework to continuously monitor the creeping simplification of shorelines and the inevitable loss of edge-effect habitats.

Shoreline Geometry Analysis

Full Lake Shoreline Comparison

Full lake shoreline overlay. Cyan: March 2025 baseline. Orange: March 2026 composite. The two boundaries are nearly identical, confirming geometric stability.

Automated Drift Analysis

Spatial drift analysis. Extreme shifts in the southern bay are due to natural shallow mudflat exposure during dry season, not land reclamation.