quirky lighthouses
Reading
This dataset catalogues 14,585 lighthouses and related navigational landmarks sourced from OpenStreetMap, with 13 columns covering location (lat/lon), OSM identifiers, names, operators, build years, light characteristics, and heritage status. Coverage is very uneven: descriptive fields like country (99.6% null), heritage (96.9% null), year_built (93.2% null) and operator (92.7% null) are mostly empty, so any analysis on those needs to acknowledge the small annotated subsample. The most reliable signals are geographic (lat/lon, fully populated) and the OSM-derived fields osm_type and seamark_type — the latter shows the dataset is dominated by light_minor (3,496) and light_major (3,051), confirming its lighthouse focus. Light_character is also worth examining: where recorded, 'Fl' (flashing) overwhelmingly dominates at 75% of entries. Latitude is heavily skewed toward the northern hemisphere (median 40.8°) with 1,295 outliers flagged in the southern extremes.
citing: row_count · column_count · columns · kinds
Charts the summary said to look at first
Show data table
| value | count | share |
|---|---|---|
| light_minor | 3496 | 24.0% |
| light_major | 3051 | 20.9% |
| landmark | 716 | 4.9% |
| beacon_special_purpose | 146 | 1.0% |
| beacon_lateral | 102 | 0.7% |
| beacon_cardinal | 19 | 0.1% |
| light | 9 | 0.1% |
| beacon | 5 | 0.0% |
| beacon_isolated_danger | 5 | 0.0% |
| building | 4 | 0.0% |
| daymark | 4 | 0.0% |
| radio_station | 3 | 0.0% |
| pile | 3 | 0.0% |
| signal_station_traffic | 3 | 0.0% |
| signal_station_warning | 3 | 0.0% |
| buoy_lateral | 3 | 0.0% |
| navigation_line | 2 | 0.0% |
| fishing_facility | 2 | 0.0% |
| light_vessel | 1 | 0.0% |
| cone | 1 | 0.0% |
Show data table
| value | count | share |
|---|---|---|
| Fl | 3126 | 21.4% |
| Iso | 249 | 1.7% |
| F | 245 | 1.7% |
| Q | 182 | 1.2% |
| Oc | 151 | 1.0% |
| LFl | 148 | 1.0% |
| VQ | 24 | 0.2% |
| Al.Fl | 24 | 0.2% |
| Mo | 14 | 0.1% |
| FFl | 4 | 0.0% |
| Al | 4 | 0.0% |
| IQ | 3 | 0.0% |
| Al.LFl | 2 | 0.0% |
| Al.Oc | 2 | 0.0% |
| Q+LFl | 2 | 0.0% |
| IVQ | 1 | 0.0% |
| Fl(2) | 1 | 0.0% |
| LFl W 10s | 1 | 0.0% |
| Al.Iso | 1 | 0.0% |
Show data table
| value | count | share |
|---|---|---|
| node | 11358 | 77.9% |
| way | 3227 | 22.1% |
Show data table
| bin | count |
|---|---|
| -63.4 – -59.77 | 3 |
| -59.77 – -56.14 | 2 |
| -56.14 – -52.51 | 38 |
| -52.51 – -48.88 | 44 |
| -48.88 – -45.25 | 29 |
| -45.25 – -41.62 | 92 |
| -41.62 – -37.99 | 108 |
| -37.99 – -34.36 | 112 |
| -34.36 – -30.73 | 147 |
| -30.73 – -27.1 | 101 |
| -27.1 – -23.47 | 93 |
| -23.47 – -19.84 | 113 |
| -19.84 – -16.21 | 58 |
| -16.21 – -12.58 | 92 |
| -12.58 – -8.947 | 58 |
| -8.947 – -5.317 | 130 |
| -5.317 – -1.687 | 129 |
| -1.687 – 1.942 | 168 |
| 1.942 – 5.572 | 121 |
| 5.572 – 9.202 | 239 |
| 9.202 – 12.83 | 549 |
| 12.83 – 16.46 | 274 |
| 16.46 – 20.09 | 241 |
| 20.09 – 23.72 | 383 |
| 23.72 – 27.35 | 273 |
| 27.35 – 30.98 | 226 |
| 30.98 – 34.61 | 1062 |
| 34.61 – 38.24 | 1554 |
| 38.24 – 41.87 | 1300 |
| 41.87 – 45.5 | 1976 |
| 45.5 – 49.13 | 1257 |
| 49.13 – 52.76 | 625 |
| 52.76 – 56.39 | 900 |
| 56.39 – 60.02 | 1039 |
| 60.02 – 63.65 | 410 |
| 63.65 – 67.28 | 357 |
| 67.28 – 70.91 | 179 |
| 70.91 – 74.54 | 73 |
| 74.54 – 78.17 | 22 |
| 78.17 – 81.8 | 8 |
Show data table
| value | count | share |
|---|---|---|
| LV | 18 | 0.1% |
| DE | 8 | 0.1% |
| EE | 7 | 0.0% |
| HT | 6 | 0.0% |
| US | 5 | 0.0% |
| GB | 2 | 0.0% |
| PT | 2 | 0.0% |
| IM | 2 | 0.0% |
| JP | 1 | 0.0% |
| KY | 1 | 0.0% |
| PH | 1 | 0.0% |
| IN | 1 | 0.0% |
| FI | 1 | 0.0% |
| PL | 1 | 0.0% |
| IT | 1 | 0.0% |
| RU | 1 | 0.0% |
| UZ | 1 | 0.0% |
| MX | 1 | 0.0% |
| TW | 1 | 0.0% |
Schema
13 columns| Alerts | ||||
|---|---|---|---|---|
| name | text | 0.0% | 14,239 |
near_unique
|
| lat | numeric | 0.0% | 14,572 |
outliers
|
| lon | numeric | 0.0% | 14,565 |
|
| country | categorical | 99.6% | 19 |
long_tail
null_rate
|
| height | categorical | 90.2% | 316 |
long_tail
null_rate
|
| year_built | categorical | 93.2% | 429 |
long_tail
null_rate
|
| operator | categorical | 92.7% | 283 |
long_tail
null_rate
|
| seamark_type | categorical | 48.0% | 25 |
null_rate
|
| light_character | categorical | 71.3% | 19 |
null_rate
|
| heritage | categorical | 96.9% | 7 |
null_rate
|
| wikipedia | text | 86.2% | 1,965 |
near_unique
null_rate
|
| osm_id | numeric | 0.0% | 14,584 |
|
| osm_type | categorical | 0.0% | 2 |
|
name
text identifier near_uniqueThis column holds proper names of lighthouses, with 14,239 unique values across 14,585 rows (near_unique alert) and a mean of 2.33 words per entry. The vocabulary is multilingual: 'lighthouse' dominates at 8,487 occurrences but 'faro', 'fyr', 'phare', 'farol' and Cyrillic 'маяк' all appear, signalling Spanish/Italian, Scandinavian, French, Portuguese and Russian sources mixed together. Despite the near-uniqueness, 346 duplicate names (2.4%) exist, which is worth checking before treating this as a key. Treatment: Use as a display label; do not treat as a unique key without disambiguating the 346 duplicates.
- n
- 14,585
- nulls
- 0 (0.0%)
- unique
- 14,239
- len_min
- 2
- len_max
- 91
- len_mean
- 18.95
- len_median
- 21
- len_p95
- 27
- word_mean
- 2.327
- word_median
- 2
- n_empty
- 0
- n_duplicates
- 346
- duplicate_rate
- 0.02372
- vocab_size
- 14,670
- readability_flesch_mean
- 75.78
- emoji_rate
- 0
- url_rate
- 0
- one_word_rate
- 0.1068
- allcaps_rate
- 0.05794
- boilerplate_rate
- 0
lat
numeric feature outliersThis is a latitude coordinate in decimal degrees, ranging from -63.40 to 81.80 with a median of 40.81, suggesting a Northern-Hemisphere-skewed global distribution. The strong negative skew (-1.46) and 1295 flagged outliers (8.88%) reflect a long tail into the southern hemisphere rather than data errors. Near-unique values (14572 of 14585) indicate per-record geocoordinates with no nulls. Treatment: Pair with longitude for geospatial features; avoid treating southern-hemisphere points as outliers when modelling.
- n
- 14,585
- nulls
- 0 (0.0%)
- unique
- 14,572
- min
- -63.4
- max
- 81.8
- mean
- 34.52
- median
- 40.81
- std
- 24.64
- q1
- 28.11
- q3
- 48.98
- iqr
- 20.87
- skew
- -1.458
- kurtosis
- 2.028
- n_outliers
- 1,295
- outlier_rate
- 0.08879
- zero_rate
- 0
lon
numeric featureThis is a longitude coordinate, with values spanning -179.20 to 179.34 and a near-symmetric distribution (skew 0.05). The 14565 unique values across 14585 rows suggest each record is a distinct geographic point. The wide IQR of 152.94 and negative kurtosis (-0.95) indicate global coverage rather than concentration in any single region. Treatment: pair with latitude for geospatial analysis; avoid treating as a standalone scalar feature.
- n
- 14,585
- nulls
- 0 (0.0%)
- unique
- 14,565
- min
- -179.2
- max
- 179.3
- mean
- 23.04
- median
- 14.97
- std
- 79.4
- q1
- -40.5
- q3
- 112.4
- iqr
- 152.9
- skew
- 0.0526
- kurtosis
- -0.9537
- n_outliers
- 0
- outlier_rate
- 0
- zero_rate
- 0
country
categorical metadata long_tail null_rateTwo-letter ISO country codes (LV, DE, EE, HT, US…) identifying record origin, but the column is effectively empty: 99.58% of the 14,585 rows are null, leaving only ~61 populated values spread across 19 codes. Among the few present, Latvia leads at 29.5% (18 records) with high entropy ratio 0.81, so no single market dominates the observed slice. Treatment: Drop or treat as missing-indicator only; insufficient coverage for modelling or segmentation.
- n
- 14,585
- nulls
- 14,524 (99.6%)
- unique
- 19
- top_value
- LV
- top_rate
- 0.2951
- cardinality
- 19
- entropy
- 3.442
- entropy_ratio
- 0.8102
height
categorical feature long_tail null_rateStored as a categorical, this column appears to record a height as a small integer (top values are '15', '12', '14', '10', '8'), with 316 distinct values and high entropy ratio 0.8234. The dominant signal is missingness: null_rate is 0.9018, so roughly 90% of the 14585 rows have no value, and even the most common value '15' covers only 4.12% of non-nulls. The numeric-looking strings suggest it should be a numeric feature rather than a category. Treatment: Cast to numeric and impute or add a missingness indicator before modelling, given ~90% nulls.
- n
- 14,585
- nulls
- 13,153 (90.2%)
- unique
- 316
- top_value
- 15
- top_rate
- 0.0412
- cardinality
- 316
- entropy
- 6.837
- entropy_ratio
- 0.8234
year_built
categorical feature long_tail null_rateConstruction year of the asset, stored as free-text strings that mix four-digit years (e.g. '1875', '1872') with century shorthand like 'C19' and 'C20' — the latter is actually the most frequent value at 31 occurrences. The column is 93.2% null and only populated for 14585 rows, with 429 distinct values and very high entropy ratio (0.93), so the populated portion is a long, flat tail dominated by 19th-century dates. The mixed encoding (numeric years vs. century codes) means this cannot be treated as a clean numeric field without parsing. Treatment: Parse century codes (e.g. 'C19' → 1850) and cast to numeric year; given 93% nulls, add a missing-indicator and consider dropping if coverage stays this low.
- n
- 14,585
- nulls
- 13,593 (93.2%)
- unique
- 429
- top_value
- C19
- top_rate
- 0.03125
- cardinality
- 429
- entropy
- 8.142
- entropy_ratio
- 0.9311
operator
categorical metadata long_tail null_rateThis is the operating authority responsible for each entry, likely a lighthouse or maritime navigation aid given the prevalence of coast guards and Plovput. The column is 92.7% null, leaving only ~1,065 populated rows spread across 283 distinct operators with high entropy (ratio 0.861) and the top value (U.S. Coast Guard) covering just 7.7%. Notable signals include a long tail of regional Philippine Coast Guard stations and at least one non-Latin entry (海上保安庁, Japan Coast Guard), suggesting multilingual free-form values rather than a controlled vocabulary. Treatment: Normalize/translate operator strings and group long-tail values; treat missingness as its own category before any encoding.
- n
- 14,585
- nulls
- 13,520 (92.7%)
- unique
- 283
- top_value
- U.S. Coast Guard
- top_rate
- 0.077
- cardinality
- 283
- entropy
- 7.013
- entropy_ratio
- 0.8611
seamark_type
categorical feature null_rateThis column classifies maritime seamark features, with 25 distinct types dominated by navigational lights — 'light_minor' covers 46.1% of non-null rows and 'light_major' is the runner-up, together swamping the long tail. Nearly half the rows (48.0%) are null, which triggered the null_rate alert and means this attribute is absent for most records. Entropy ratio of 0.36 confirms heavy concentration in the top two categories. Treatment: Treat nulls as a distinct 'unknown' level and group rare categories before one-hot encoding.
- n
- 14,585
- nulls
- 7,002 (48.0%)
- unique
- 25
- top_value
- light_minor
- top_rate
- 0.461
- cardinality
- 25
- entropy
- 1.657
- entropy_ratio
- 0.3569
light_character
categorical feature null_rateThis column captures the light character (flash pattern) of navigational lights, with codes like 'Fl' (flashing), 'Iso' (isochronous), 'Q' (quick), and 'Oc' (occulting) drawn from standard maritime chart notation. It is overwhelmingly dominated by 'Fl' at 74.7% of the 4,188 non-null rows, yielding a low entropy ratio of 0.354 across 19 distinct codes. The headline concern is a 71.31% null rate, meaning the field is populated for fewer than 30% of records. Treatment: Treat nulls as a distinct 'unknown' category and one-hot encode, collapsing rare codes into 'other'.
- n
- 14,585
- nulls
- 10,401 (71.3%)
- unique
- 19
- top_value
- Fl
- top_rate
- 0.7471
- cardinality
- 19
- entropy
- 1.503
- entropy_ratio
- 0.3539
heritage
categorical metadata null_rate`heritage` is a sparsely populated categorical flag with only 7 distinct values across 14585 rows and a 96.89% null rate. The non-null entries are a messy mix of numeric codes ("2", "3", "4", "1") and free-text tokens ("yes", "no", "regional"), with "2" alone covering 75.7% of populated cells. The coding inconsistency plus the extreme nullity suggest this field was populated ad hoc rather than against a controlled vocabulary. Treatment: Normalise the mixed numeric/text codes to a single scheme and treat absence as its own category, or drop given the 96.89% null rate.
- n
- 14,585
- nulls
- 14,132 (96.9%)
- unique
- 7
- top_value
- 2
- top_rate
- 0.7572
- cardinality
- 7
- entropy
- 1.244
- entropy_ratio
- 0.4431
wikipedia
text metadata near_unique null_rateThis column holds short Wikipedia article titles or links, almost certainly for lighthouses given the dominance of tokens like 'light' (477), 'lighthouse' (335), and multilingual equivalents 'fr:phare' (195), 'es:faro' (181), 'de:leuchtturm' (89), 'pt:farol' (65). Strings are short (mean 22.3 chars, ~3 words) and the column is 86.23% null with only 1,965 unique values across 14,585 rows. The interwiki-style prefixes ('fr:', 'es:', 'de:', 'pt:') indicate a language mix encoded in the values themselves rather than free prose. Treatment: Parse the 'lang:title' prefix into a language code and title, and treat as an optional cross-reference link rather than a model feature.
- n
- 14,585
- nulls
- 12,577 (86.2%)
- unique
- 1,965
- len_min
- 6
- len_max
- 55
- len_mean
- 22.3
- len_median
- 22
- len_p95
- 33
- word_mean
- 2.996
- word_median
- 3
- n_empty
- 0
- n_duplicates
- 43
- duplicate_rate
- 0.02141
- vocab_size
- 2,370
- readability_flesch_mean
- 48.92
- emoji_rate
- 0
- url_rate
- 0
- one_word_rate
- 0.0762
- allcaps_rate
- 0
- boilerplate_rate
- 0
osm_id
numeric identifierThis is almost certainly the OpenStreetMap object id: 14584 unique values across 14585 rows (effectively one per record), no nulls, and a numeric range from 13,391,742 up to 13,525,496,137 that matches OSM's monotonically growing identifier space. The distribution is right-skewed (skew 1.07) with median 1,574,285,300 well below mean 3,722,756,855, reflecting the mix of older low-numbered and newer high-numbered OSM entities rather than any analytic signal. Treatment: Keep as a key for joins to OSM data; exclude from modelling features.
- n
- 14,585
- nulls
- 0 (0.0%)
- unique
- 14,584
- min
- 1.339e+07
- max
- 1.353e+10
- mean
- 3.723e+09
- median
- 1.574e+09
- std
- 3.828e+09
- q1
- 1.001e+09
- q3
- 6.402e+09
- iqr
- 5.401e+09
- skew
- 1.073
- kurtosis
- -0.1991
- n_outliers
- 0
- outlier_rate
- 0
- zero_rate
- 0
osm_type
categorical featureBinary categorical flag indicating the OpenStreetMap geometry type, taking only the values 'node' (11358 rows, 77.9%) and 'way' (3227 rows). No nulls across 14585 rows, and entropy ratio of 0.76 reflects the moderate imbalance toward nodes. Treatment: One-hot or boolean-encode (node vs way) before modelling.
- n
- 14,585
- nulls
- 0 (0.0%)
- unique
- 2
- top_value
- node
- top_rate
- 0.7787
- cardinality
- 2
- entropy
- 0.7625
- entropy_ratio
- 0.7625