In [19]:
from obspy.clients.fdsn import Client
from obspy import UTCDateTime
import pandas as pd

# -----------------------------
# FDSN client (EarthScope / IRIS)
# -----------------------------
client = Client("IRIS")

# -----------------------------
# Appalachian region bounding box
# (conservative, adjustable)
# -----------------------------
minlatitude = 32.0
maxlatitude = 42.5
minlongitude = -90.0
maxlongitude = -74.0

# -----------------------------
# Time window (broad query)
# -----------------------------
t_start = UTCDateTime("1990-01-01")
t_end   = UTCDateTime()

# -----------------------------
# Query stations with BH channels
# -----------------------------
inventory = client.get_stations(
    minlatitude=minlatitude,
    maxlatitude=maxlatitude,
    minlongitude=minlongitude,
    maxlongitude=maxlongitude,
    channel="BH?",
    starttime=t_start,
    endtime=t_end,
    level="channel"
)

# -----------------------------
# Minimum duration threshold
# -----------------------------
min_years = 2.0
#min_years = 1.5
min_seconds = min_years * 365.25 * 24 * 3600

records = []

# -----------------------------
# Parse inventory
# -----------------------------
for network in inventory:
    for station in network:
        bh_channels = [ch for ch in station.channels if ch.code.startswith("BH")]

        if len(bh_channels) < 3:
            continue  # Require full BH* set

        # Determine data span across BH channels
        start_times = []
        end_times = []

        for ch in bh_channels:
            if ch.start_date:
                start_times.append(ch.start_date)
            if ch.end_date:
                end_times.append(ch.end_date)
            else:
                end_times.append(t_end)

        if not start_times or not end_times:
            continue

        span = min(end_times) - max(start_times)

        if span >= min_seconds:
            records.append({
                "network": network.code,
                "station": station.code,
                "latitude": station.latitude,
                "longitude": station.longitude,
                "elevation_m": station.elevation,
                "start_date": max(start_times).date,
                "end_date": min(end_times).date,
                "duration_years": span / (365.25 * 24 * 3600)
            })

# -----------------------------
# Convert to DataFrame
# -----------------------------
df = pd.DataFrame(records).sort_values(
    by="duration_years", ascending=False
)

# -----------------------------
# Output
# -----------------------------
print(f"\nStations with BH* channels ≥ {min_years} years:\n")
print(df.to_string(index=False))

# Optional: save to CSV
df.to_csv("appalachian_BH_stations_2yr_plus.csv", index=False)
Stations with BH* channels ≥ 2.0 years:

network station  latitude  longitude  elevation_m start_date   end_date  duration_years
     PN   PNNAF 38.333000 -85.931000         22.9 1999-01-01 2026-01-09       27.025193
     PN   PPHHS 37.972000 -87.486000        122.2 1999-01-01 2026-01-09       27.025193
     PN   PPMUN 40.201000 -85.387001        280.0 1999-01-01 2026-01-09       27.025193
     PN    PURD 40.438000 -86.946198        207.0 1999-01-10 2026-01-09       27.000552
     SS    NCAT 36.078957 -79.771179        243.0 2009-02-03 2026-01-09       16.933475
     LD    WUPA 39.932417 -75.605983         86.0 2014-07-01 2026-01-09       11.528957
     PE    WRPS 40.794180 -77.865320        320.0 2005-04-06 2016-01-11       10.766133
     PE    PAGS 40.227700 -76.722200        120.0 2009-02-12 2019-06-06       10.310098
     NM    CGM3 37.297750 -89.658200        148.0 2015-10-02 2026-01-09       10.272569
     LD     MVL 39.999395 -76.348888        106.0 2001-02-12 2011-03-16       10.088296
     LD    GEDE 39.811298 -75.635803        105.0 2016-02-01 2026-01-09        9.941004
     US     WCI 38.229000 -86.293800        463.0 1996-11-06 2006-10-08        9.919233
     US     WVT 36.130000 -87.830000        153.0 1996-11-17 2006-10-08        9.889117
     TA    SFIN 40.379002 -87.096703        165.0 2008-10-09 2018-08-15        9.850398
     TA    KMSC 35.141998 -81.333298        240.0 2008-10-13 2018-08-15        9.839446
     LD    GCMD 39.562400 -79.338200        794.8 2018-06-26 2026-01-09        7.542647
     LD    WADE 38.679420 -75.249611         11.4 2018-06-27 2026-01-09        7.539909
     TA    L44A 42.178200 -87.911903        202.0 2011-10-10 2019-03-14        7.427323
     OH    M53A 41.439301 -80.675003        334.0 2018-09-28 2026-01-09        7.285289
     MU    P49A 39.534199 -84.716400        272.0 2018-09-28 2026-01-09        7.285289
     OH    P51A 39.481800 -83.060097        211.0 2018-09-28 2026-01-09        7.285289
     OH    O53A 40.249298 -81.212898        320.0 2018-09-28 2026-01-09        7.285289
     PE    PSUB 39.927260 -75.451260        110.0 2009-01-30 2015-12-31        6.918549
     US    YSNY 42.475800 -78.537500        628.0 1993-08-18 1999-10-01        6.119097
     LD    TRNY 41.145000 -74.224430        270.0 2014-09-04 2020-09-03        5.998631
     PE    PSWB 41.305473 -76.015182        398.0 2009-11-13 2015-10-06        5.897331
     TA    M53A 41.439301 -80.675003        334.0 2013-01-14 2018-09-27        5.702002
     US    GWDE 38.825600 -75.617100         19.0 1995-09-07 2001-05-11        5.675565
     TA    N59A 40.916801 -75.770302        508.0 2010-11-08 2016-04-19        5.447268
     TA    M54A 41.507900 -79.664703        488.0 2010-11-04 2016-04-15        5.446802
     TA    O56A 40.268299 -78.566299        684.0 2010-11-05 2016-04-14        5.442790
     N4    M44A 41.388200 -88.043200        207.0 2013-11-08 2019-03-17        5.349892
     N4    X48A 34.451700 -87.045200        180.0 2013-12-16 2019-03-17        5.246685
     N4    P46A 39.617800 -87.206700        194.0 2013-12-20 2019-03-17        5.235385
     N4    152A 32.668600 -84.718800        214.0 2014-02-03 2019-03-17        5.111709
     N4    T45B 37.015900 -88.645900        136.0 2014-02-11 2019-03-17        5.092402
     PE    PSDB 41.127480 -78.753120        437.0 2010-12-21 2016-01-11        5.059293
     N4    U49A 36.512900 -85.779600        234.0 2014-02-24 2019-03-17        5.054866
     N4    W52A 35.093500 -83.927700        519.0 2014-03-11 2019-03-17        5.013640
     N4    V53A 35.669400 -82.812400        681.0 2014-03-14 2019-03-17        5.005718
     N4    T50A 37.020400 -84.838400        302.0 2014-04-17 2019-03-17        4.911742
     N4    S51A 37.639200 -83.593500        286.0 2014-04-21 2019-03-17        4.901845
     N4    R50A 38.281600 -84.327400        255.0 2014-04-23 2019-03-17        4.896142
     N4    R49A 38.291600 -85.171400        251.0 2014-04-23 2019-03-17        4.895782
     N4    P48A 39.460500 -85.425800        300.0 2014-05-02 2019-03-17        4.870967
     N4    O49A 40.188000 -84.335300        292.0 2014-05-08 2019-03-17        4.854411
     N4    N49A 40.922000 -84.182500        225.0 2014-05-11 2019-03-17        4.847022
     N4    N47A 40.880100 -85.694200        252.0 2014-05-12 2019-03-17        4.843995
     N4    M50A 41.403500 -83.042800        176.0 2014-05-14 2019-03-17        4.838536
     N4    Y52A 33.864000 -84.062600        286.0 2014-05-25 2019-03-17        4.808661
     N4    L48A 41.943802 -84.432899        369.0 2014-05-23 2019-02-21        4.751155
     N4    V52A 35.841702 -83.595901        328.0 2014-03-08 2018-08-20        4.451966
     N4    N53A 40.806500 -80.837700        360.0 2014-10-24 2019-03-17        4.392533
     N4    M52A 41.540500 -81.357000        382.0 2014-10-28 2019-03-17        4.381534
     N4    N51A 40.918300 -82.374800        343.0 2014-11-03 2019-03-17        4.364643
     N4    O54A 40.182100 -80.377800        357.0 2014-11-24 2019-03-17        4.307427
     LD     BNY 42.089323 -75.970892        292.0 2015-10-13 2020-01-30        4.296715
     N4    O52A 40.115800 -81.836100        331.0 2014-12-01 2019-03-17        4.288300
     N4    Q52A 38.962200 -82.266900        228.0 2014-12-01 2019-03-17        4.288300
     PE    UPAO 40.482530 -80.020560        274.0 2009-07-30 2013-11-05        4.270285
     N4    Q54A 38.983600 -80.833800        254.0 2014-12-08 2019-03-17        4.269008
     N4    Y57A 34.017000 -80.391500         56.0 2015-01-21 2019-03-17        4.148756
     N4    Y58A 33.905700 -79.666500         19.0 2015-01-25 2019-03-17        4.137390
     N4    Y60A 34.004600 -78.216300          7.0 2015-01-30 2019-03-17        4.124123
     N4    W57A 35.152900 -79.992800         85.0 2015-01-30 2019-03-17        4.123560
     N4    V61A 35.791200 -76.577600          4.0 2015-02-02 2019-03-17        4.115967
     N4    T59A 36.971600 -77.554100         63.0 2015-02-04 2019-03-17        4.110333
     N4    V58A 35.794000 -79.115000        127.0 2015-02-05 2019-03-17        4.107280
     N4    S61A 37.680400 -75.672700         58.0 2015-02-09 2019-03-17        4.096164
     N4    R61A 38.330300 -75.339000         76.0 2015-02-09 2019-03-17        4.096164
     N4    P61A 39.673400 -74.791900         22.0 2015-02-12 2019-03-17        4.088147
     N4    T57A 36.998300 -79.253800        230.0 2015-03-18 2019-03-17        3.995346
     N4    V51A 35.803299 -84.351097        243.0 2014-03-10 2018-03-07        3.991467
     N4    U56A 36.347200 -80.382900        363.0 2015-04-13 2019-03-17        3.924190
     N4    U54A 36.520900 -81.820400        837.0 2015-04-13 2019-03-17        3.924141
     N4    S57A 37.760500 -78.953600        264.0 2015-04-28 2019-03-17        3.883377
     N4    R58B 37.963600 -77.878700        116.0 2015-04-28 2019-03-17        3.883377
     N4    S54A 37.799700 -81.311400        636.0 2015-04-28 2019-03-17        3.883183
     OH    P52A 39.633701 -82.132500        293.0 2018-09-28 2022-08-11        3.869952
     N4    P57A 39.483500 -78.012600        191.0 2015-05-05 2019-03-17        3.863661
     N4    N58A 40.839600 -76.715800        200.0 2015-05-14 2019-03-17        3.839438
     N4    M57A 41.337200 -77.128000        319.0 2015-05-18 2019-03-17        3.828537
     Z9    W15A 32.138000 -83.898499        102.8 2010-07-18 2014-05-14        3.822812
     N4    P51A 39.481800 -83.060097        211.0 2014-12-01 2018-09-27        3.822665
     N4    L59A 42.190200 -75.042600        677.0 2015-06-11 2019-03-17        3.764423
     N4    L56A 42.136500 -77.559100        688.0 2015-06-15 2019-03-17        3.751923
     N4    R55A 38.282500 -80.119500        833.0 2015-05-01 2018-11-30        3.582322
     N4    Q56A 39.040100 -79.187100        430.0 2015-05-05 2018-11-17        3.535482
     Z9     W23 32.523399 -83.886002        158.8 2010-07-19 2013-10-19        3.253219
     Z9     W14 32.093800 -83.898697        965.7 2010-07-18 2013-10-18        3.252956
     N4    U59A 36.352600 -77.792503         99.0 2015-02-02 2018-03-13        3.107297
     TA    O48B 40.257099 -85.155296        300.0 2016-01-12 2019-02-12        3.087612
     LM    L48A 41.943800 -84.432900        369.0 2019-01-29 2022-02-09        3.033329
     Z9     W27 32.917400 -83.923401        163.6 2011-05-10 2014-05-13        3.009274
     Z9     D15 34.449799 -83.279900        254.1 2011-05-16 2014-05-19        3.009221
     Z9     D14 34.376499 -83.181099        210.9 2011-05-16 2014-05-19        3.008961
     Z9     W33 34.654701 -83.886002        533.4 2011-05-16 2014-05-19        3.008234
     Z9     W32 34.465698 -83.865799        396.1 2011-05-17 2014-05-20        3.008170
     Z9     W16 32.179401 -83.884102        114.7 2011-05-11 2014-05-14        3.008042
     Z9     W19 32.313202 -83.906403        118.6 2011-05-11 2014-05-13        3.006827
     Z9     W21 32.403999 -83.858704        130.8 2011-05-11 2014-05-13        3.006250
     Z9     W35 34.976200 -83.943802        539.0 2011-05-17 2014-05-19        3.006042
     Z9     W29 33.456799 -83.728798        193.4 2011-05-19 2014-05-20        3.003852
     Z9     D02 33.604099 -82.282799        123.5 2011-05-18 2014-05-17        2.998063
     6E    WB08 38.800900 -88.807098        175.0 2013-10-22 2016-10-20        2.997947
     Z9     W13 32.055000 -83.893303        107.3 2011-05-16 2014-05-14        2.995108
     N4    T60A 37.139702 -76.734901         11.0 2015-04-23 2018-03-15        2.893780
     SP   AGBLF 33.395000 -81.758011        118.0 2001-09-11 2004-06-30        2.800707
     SP   RUFIN 33.012249 -80.806534         23.8 2001-09-11 2004-06-30        2.800707
     SP   GREEN 34.230000 -82.174301        182.9 2001-09-11 2004-06-30        2.800707
     SP   BTRCK 32.431999 -80.747597          3.0 2001-09-11 2004-06-30        2.800707
     SP   BRNCH 33.246498 -80.790398         53.0 2001-09-11 2004-06-30        2.800707
     SP    BBLV 33.923401 -81.534698        198.1 2001-09-11 2004-06-30        2.800707
     SP   JAMES 32.731098 -79.932899          7.0 2001-09-11 2004-06-30        2.800707
     SP   TIMBR 33.335701 -79.890701         12.2 2001-09-11 2004-06-30        2.800707
     SP   DWDAN 34.738800 -82.830803        286.5 2001-09-11 2004-06-30        2.800707
     SP   DFORK 34.153099 -81.200302         91.4 2001-09-17 2004-06-30        2.784280
     SP   LGELG 34.217510 -80.709221         64.0 2001-09-17 2004-06-30        2.784280
     SP    WOAK 34.621471 -83.052193        268.2 2001-09-17 2004-06-30        2.784280
     XQ    NC04 35.554001 -79.242401         92.0 2012-03-25 2014-12-31        2.770705
     XQ    NC07 35.470001 -79.379898         99.0 2012-03-25 2014-12-31        2.770705
     XQ    NC03 35.537300 -79.303802        100.0 2012-03-25 2014-12-31        2.770705
     XQ    NC10 35.472099 -79.217903        123.0 2012-03-25 2014-12-31        2.770705
     XQ    NC02 35.562099 -79.468597        147.0 2012-03-26 2014-12-31        2.767967
     XQ    NC11 35.407299 -79.283203        155.0 2012-03-26 2014-12-31        2.767967
     XQ    NC01 35.622101 -79.200996        107.0 2012-03-26 2014-12-31        2.767967
     XQ    NC05 35.533600 -79.201401         98.0 2012-03-26 2014-12-31        2.767967
     XQ    NC09 35.450500 -79.281898        121.0 2012-03-26 2014-12-31        2.767967
     XQ    NC12 35.384701 -79.243500        136.0 2012-03-27 2014-12-31        2.765229
     XQ    NC08 35.467800 -79.313103        106.0 2012-03-27 2014-12-31        2.765229
     TA    P60A 39.811298 -75.635803        105.0 2013-04-28 2016-02-01        2.764265
     TA    R58B 37.963600 -77.878700        116.0 2012-08-02 2015-04-28        2.736746
     XQ    NC06 35.525600 -79.016899         84.0 2012-04-07 2014-12-31        2.735113
     TA    M51A 41.332100 -82.183098        239.0 2012-08-29 2015-05-15        2.709208
     SP    EDGE 33.807301 -81.862999        217.0 2001-10-22 2004-06-30        2.688455
     TA    Q61A 38.879902 -75.325600          5.0 2013-05-28 2016-02-01        2.682130
     6E    WB45 37.723099 -86.522598        176.0 2014-05-08 2016-12-31        2.652977
     6E    WB42 37.897499 -86.824799        147.0 2014-05-09 2016-12-31        2.650240
     6E    WB44 37.798599 -86.614098        221.0 2014-05-09 2016-12-31        2.650240
     6E    WB37 38.120098 -87.286201        149.0 2014-05-11 2016-12-31        2.644764
     6E    WB38 38.069302 -87.209801        128.0 2014-05-11 2016-12-31        2.644764
     6E    WB33 38.216000 -87.522301        140.0 2014-05-12 2016-12-31        2.642026
     6E    WB34 38.187801 -87.459702        138.0 2014-05-12 2016-12-31        2.642026
     6E    WB26 38.377602 -87.855103        129.0 2014-05-13 2016-12-31        2.639288
     6E    WB32 38.237999 -87.564903        159.0 2014-05-13 2016-12-31        2.639288
     6E    WB28 38.346600 -87.732903        123.0 2014-05-14 2016-12-31        2.636550
     6E    WB30 38.279301 -87.658897        143.0 2014-05-14 2016-12-31        2.636550
     6E    WB29 38.315102 -87.714203        127.0 2014-05-15 2016-12-31        2.633812
     SP   CLINT 34.481098 -81.862801        199.0 2001-11-13 2004-06-30        2.628223
     LD    FMPA 40.047800 -76.320800        121.0 2005-02-22 2007-10-02        2.606190
     TA    S44A 37.693600 -89.255096        155.0 2011-05-20 2013-12-16        2.578091
     Z9     W31 33.972198 -83.738503        292.0 2011-10-21 2014-05-19        2.576287
     Z9     D13 34.294300 -83.166199        200.0 2011-10-22 2014-05-19        2.574399
     SP   CLOVE 35.096909 -81.184212        227.0 2002-01-15 2004-06-30        2.455738
     6E    WB11 38.716999 -88.609901        132.0 2013-05-31 2015-11-12        2.453114
     6E    WB15 38.627998 -88.409599        102.0 2013-06-06 2015-11-12        2.436687
     SP   BLACK 33.363998 -81.263451         94.0 2002-02-15 2004-06-30        2.370865
     TA    P51A 39.481800 -83.060097        211.0 2012-07-23 2014-12-01        2.359202
     SP   ACFLR 34.016529 -80.982887         91.4 2001-09-17 2004-01-24        2.353517
     TA    L53A 41.953899 -80.259804        355.0 2013-01-16 2015-05-15        2.326783
     TA    R54A 38.190899 -80.990402        512.0 2013-01-12 2015-04-27        2.288083
     SP    ANDY 33.460739 -79.571518         49.0 2002-03-18 2004-06-30        2.285991
     TA    O52A 40.115799 -81.836098        331.0 2012-08-25 2014-12-01        2.268853
     TA    Q52A 38.962200 -82.266899        228.0 2012-08-26 2014-12-01        2.266115
     TA    O51A 40.146999 -82.605598        380.0 2012-08-24 2014-11-27        2.260581
     TA    P53A 39.486801 -81.389603        270.0 2012-08-27 2014-11-24        2.244250
     TA    P43A 39.640900 -89.521301        176.0 2011-08-16 2013-11-08        2.233955
     6E    WB46 38.410999 -87.752899        129.0 2014-10-24 2016-12-31        2.190281
     TA    N51A 40.918301 -82.374802        343.0 2012-08-28 2014-11-03        2.184296
     TA    Q53A 38.858601 -81.525101        310.0 2013-02-27 2015-04-29        2.167399
     TA    P46A 39.617802 -87.206703        194.0 2011-10-22 2013-12-20        2.165025
     TA    Y52A 33.863998 -84.062599        286.0 2012-04-08 2014-05-25        2.129053
     TA    U54A 36.520901 -81.820396        837.0 2013-02-28 2015-04-13        2.121034
     TA    L58A 42.044701 -75.850197        447.0 2013-07-03 2015-08-08        2.099114
     TA    S57A 37.760502 -78.953598        264.0 2013-03-28 2015-04-28        2.085137
     TA    T56A 37.028801 -80.031097        387.0 2013-03-16 2015-04-12        2.074131
     TA    S56A 37.677101 -79.566200        449.0 2013-04-03 2015-04-30        2.074112
     TA    T58A 36.945400 -78.533798        167.0 2013-03-18 2015-04-13        2.071688
     TA    O44A 40.152599 -88.467102        213.0 2011-10-15 2013-11-08        2.069684
     TA    W56A 35.134998 -80.582802        177.0 2013-03-08 2015-04-02        2.068865
     TA    X60A 34.577301 -77.976799         12.0 2013-03-10 2015-04-04        2.068865
     TA    O59A 40.311401 -76.185898        334.0 2013-04-28 2015-05-21        2.063408
     6E    WB23 38.448399 -88.004700        123.0 2013-10-22 2015-11-12        2.058864
     TA    V59A 35.764900 -78.239403         58.0 2013-03-12 2015-04-01        2.055527
     TA    M44A 41.388199 -88.043198        207.0 2011-10-21 2013-11-08        2.053257
     Z9    W315 34.177898 -83.853104        334.6 2012-05-02 2014-05-20        2.047614
     TA    X59A 34.571999 -78.602303         29.0 2013-02-10 2015-02-27        2.047095
     TA    X57A 34.464298 -80.094002        133.0 2013-02-09 2015-02-25        2.044328
     TA    L42A 42.004002 -89.667000        257.0 2011-11-05 2013-11-19        2.042437
     TA    P59A 39.610100 -76.432701        157.0 2013-04-27 2015-05-12        2.041515
     Z9     D06 33.859001 -82.630402        152.2 2012-05-04 2014-05-19        2.039598
     Z9     D03 33.659401 -82.388397        129.5 2012-05-04 2014-05-17        2.034632
     Z9     D07 33.937599 -82.686401        140.2 2012-05-04 2014-05-17        2.034052
     Z9     E31 32.986599 -82.107002         77.6 2012-05-05 2014-05-17        2.031291
     Z9     E30 32.695801 -82.109100         98.4 2012-05-05 2014-05-17        2.031267
     Z9     E28 32.335899 -82.096703         68.3 2012-05-05 2014-05-17        2.030968
     TA    S59A 37.762001 -77.294197         40.0 2013-04-12 2015-04-23        2.030335
     TA    U58A 36.394402 -78.549301        169.0 2013-03-21 2015-04-01        2.030326
     Z9     E27 32.236198 -82.109100         76.9 2012-05-06 2014-05-17        2.028932
     Z9     E26 32.097900 -82.099098         66.1 2012-05-06 2014-05-17        2.028740
     TA    V56A 35.809700 -80.496300        237.0 2013-03-24 2015-04-03        2.028196
     TA    Q57A 39.035301 -78.410698        324.0 2013-04-25 2015-05-05        2.027664
     Z9     D20 35.074001 -83.980301        478.3 2012-05-10 2014-05-19        2.025745
     Z9     D22 35.462898 -84.458801        272.3 2012-05-09 2014-05-19        2.025529
     Z9     E29 32.490799 -82.103203         79.4 2012-05-07 2014-05-17        2.025253
     Z9     D19 34.872101 -83.733803        665.0 2012-05-10 2014-05-20        2.024928
     Z9     D21 35.199699 -84.136902        526.4 2012-05-10 2014-05-19        2.023734
     Z9     D18 34.734200 -83.612099        486.8 2012-05-11 2014-05-20        2.023458
     TA    S60A 37.705502 -76.653503         36.0 2013-04-15 2015-04-23        2.022692
     TA    Z59A 33.241402 -79.278000          8.0 2013-02-23 2015-03-03        2.022616
     XO    LG19 37.595699 -89.045898        206.8 2011-07-18 2013-07-24        2.018024
     6E    WB21 38.490700 -88.109001        132.0 2014-04-26 2016-05-01        2.017796
     TA    V48A 35.740002 -86.821899        278.0 2011-12-11 2013-12-16        2.016832
     TA    R59A 38.200500 -77.116402         35.0 2013-04-16 2015-04-21        2.014649
     TA    S45A 37.677399 -88.580399        122.0 2011-05-19 2013-05-22        2.011465
     TA    R60A 38.268398 -76.580704         33.0 2013-04-18 2015-04-22        2.011094
     Z9     D04 33.730099 -82.451797        127.6 2012-05-15 2014-05-19        2.008833
     TA    X48A 34.451698 -87.045197        180.0 2011-12-14 2013-12-16        2.008619
     XO    LG21 37.669102 -88.794098        145.0 2011-07-21 2013-07-23        2.007985
     TA    R57A 38.297001 -78.523201        230.0 2013-04-25 2015-04-27        2.006312
     TA    X53A 34.503101 -83.301300        240.0 2012-04-11 2014-04-13        2.005875
     7A    NAZF 39.380199 -80.639801          0.0 2014-10-23 2016-10-24        2.004848
     TA    T57A 36.998299 -79.253799        230.0 2013-03-17 2015-03-18        2.003285
     7A    MUSK 39.997601 -81.736801          0.0 2014-10-24 2016-10-24        2.002415
     7A    PETO 39.160198 -80.329498          0.0 2014-10-24 2016-10-24        2.002339
     7A    CDRF 39.455502 -81.052399        282.0 2014-10-24 2016-10-24        2.001882
     7A    PVGR 39.571499 -81.382103          0.0 2014-10-24 2016-10-24        2.001711
     7A    AZZI 40.366402 -82.919098        294.0 2014-10-25 2016-10-24        2.001369
In [20]:
import pygmt
import pandas as pd

# -----------------------------
# Input station CSV
# -----------------------------
station_file = "appalachian_BH_stations_2yr_plus.csv"
df = pd.read_csv(station_file)

# -----------------------------
# Appalachian region
# -----------------------------
region = [-90.0, -74.0, 32, 42.5]
projection = "M6.5i"

# -----------------------------
# Create figure
# -----------------------------
fig = pygmt.Figure()

# -----------------------------
# Basemap
# -----------------------------
fig.coast(
    region=region,
    projection=projection,
    land="gray95",
    water="white",
    borders=[
        "1/1p,black",
        "2/0.8p,gray40"
    ],
    shorelines="0.5p,gray50",
    frame=["ag", 'WSne+t"Appalachian Long-Term BH Stations (>= 2 years)"']
)

# -----------------------------
# Symbol size scaled by duration
# -----------------------------
sizes = df["duration_years"].clip(upper=10) * 0.08 + 0.15

# -----------------------------
# Plot stations (WITH legend label)
# -----------------------------
fig.plot(
    x=df["longitude"],
    y=df["latitude"],
    style="c",
    size=sizes,
    fill="firebrick",
    pen="0.6p,white",
    label="BH* station (>= 2 years)"
)

# -----------------------------
# Auto legend (SAFE & CORRECT)
# -----------------------------
fig.legend(
    position="JBR+o0.2c",
    box="+gwhite@85+p0.8p"
)

# -----------------------------
# Save output
# -----------------------------
fig.savefig("appalachian_longterm_BH_stations.png", dpi=300)
fig.show()
plot [WARNING]: Cannot use auto-legend -l for variable symbol size unless +S<size> is used. Option -l ignored.
legend [WARNING]: File <stdin> is empty!
No description has been provided for this image
In [21]:
import pygmt
import pandas as pd

# -----------------------------
# Input station CSV
# -----------------------------
station_file = "appalachian_BH_stations_2yr_plus.csv"
df = pd.read_csv(station_file)

# -----------------------------
# Appalachian region
# -----------------------------
region = [-90.0, -74.0, 32, 42.5]
projection = "M6.5i"

# -----------------------------
# Create figure
# -----------------------------
fig = pygmt.Figure()

# -----------------------------
# Basemap
# -----------------------------
fig.coast(
    region=region,
    projection=projection,
    land="gray95",
    water="white",
    borders=[
        "1/1p,black",
        "2/0.8p,gray40"
    ],
    shorelines="0.5p,gray50",
    frame=["ag", 'WSne+t"Appalachian Long-Term BH Stations (>= 2 years)"']
)

# -----------------------------
# Symbol size (fixed for clarity)
# -----------------------------
sizes = 0.5  # fixed size in cm

# -----------------------------
# Create CPT (colormap) for duration
# -----------------------------
vmin = df["duration_years"].min()
vmax = df["duration_years"].max()
pygmt.makecpt(cmap="viridis", series=[vmin, vmax, (vmax-vmin)/10])

# -----------------------------
# Plot stations as triangles with color = duration
# -----------------------------
fig.plot(
    x=df["longitude"],
    y=df["latitude"],
    style=f"t{sizes}c",
    fill=df["duration_years"],
    cmap=True,       # use the CPT we just created
    pen="0.6p,white"
)

# -----------------------------
# Add colorbar
# -----------------------------
fig.colorbar(frame='af+l"Duration (years)"', position="JMR+o0.5c/0c+w7c/0.5c")

# -----------------------------
# Save output
# -----------------------------
fig.savefig("appalachian_longterm_BH_stations_triangles_colored.png", dpi=300)
fig.show()
No description has been provided for this image
In [22]:
from obspy.clients.fdsn import Client
from obspy import UTCDateTime
import pandas as pd

# -----------------------------
# FDSN client (EarthScope / IRIS)
# -----------------------------
client = Client("IRIS")

# -----------------------------
# Appalachian region bounding box
# (conservative, adjustable)
# -----------------------------
minlatitude = 32.0
maxlatitude = 42.5
minlongitude = -90.0
maxlongitude = -74.0

# -----------------------------
# Time window (broad query)
# -----------------------------
t_start = UTCDateTime("1990-01-01")
t_end   = UTCDateTime()

# -----------------------------
# Query stations with BH channels
# -----------------------------
inventory = client.get_stations(
    minlatitude=minlatitude,
    maxlatitude=maxlatitude,
    minlongitude=minlongitude,
    maxlongitude=maxlongitude,
    channel="BH?",
    starttime=t_start,
    endtime=t_end,
    level="channel"
)

# -----------------------------
# Minimum duration threshold
# -----------------------------
#min_years = 2.0
min_years = 1.5
min_seconds = min_years * 365.25 * 24 * 3600

records = []

# -----------------------------
# Parse inventory
# -----------------------------
for network in inventory:
    for station in network:
        bh_channels = [ch for ch in station.channels if ch.code.startswith("BH")]

        if len(bh_channels) < 3:
            continue  # Require full BH* set

        # Determine data span across BH channels
        start_times = []
        end_times = []

        for ch in bh_channels:
            if ch.start_date:
                start_times.append(ch.start_date)
            if ch.end_date:
                end_times.append(ch.end_date)
            else:
                end_times.append(t_end)

        if not start_times or not end_times:
            continue

        span = min(end_times) - max(start_times)

        if span >= min_seconds:
            records.append({
                "network": network.code,
                "station": station.code,
                "latitude": station.latitude,
                "longitude": station.longitude,
                "elevation_m": station.elevation,
                "start_date": max(start_times).date,
                "end_date": min(end_times).date,
                "duration_years": span / (365.25 * 24 * 3600)
            })

# -----------------------------
# Convert to DataFrame
# -----------------------------
df = pd.DataFrame(records).sort_values(
    by="duration_years", ascending=False
)

# -----------------------------
# Output
# -----------------------------
print(f"\nStations with BH* channels ≥ {min_years} years:\n")
print(df.to_string(index=False))

# Optional: save to CSV
df.to_csv("appalachian_BH_stations_1.5yr_plus.csv", index=False)
Stations with BH* channels ≥ 1.5 years:

network station  latitude  longitude  elevation_m start_date   end_date  duration_years
     PN   PPHHS 37.972000 -87.486000        122.2 1999-01-01 2026-01-09       27.025194
     PN   PPMUN 40.201000 -85.387001        280.0 1999-01-01 2026-01-09       27.025194
     PN   PNNAF 38.333000 -85.931000         22.9 1999-01-01 2026-01-09       27.025194
     PN    PURD 40.438000 -86.946198        207.0 1999-01-10 2026-01-09       27.000553
     SS    NCAT 36.078957 -79.771179        243.0 2009-02-03 2026-01-09       16.933476
     LD    WUPA 39.932417 -75.605983         86.0 2014-07-01 2026-01-09       11.528958
     PE    WRPS 40.794180 -77.865320        320.0 2005-04-06 2016-01-11       10.766133
     PE    PAGS 40.227700 -76.722200        120.0 2009-02-12 2019-06-06       10.310098
     NM    CGM3 37.297750 -89.658200        148.0 2015-10-02 2026-01-09       10.272570
     LD     MVL 39.999395 -76.348888        106.0 2001-02-12 2011-03-16       10.088296
     LD    GEDE 39.811298 -75.635803        105.0 2016-02-01 2026-01-09        9.941005
     US     WCI 38.229000 -86.293800        463.0 1996-11-06 2006-10-08        9.919233
     US     WVT 36.130000 -87.830000        153.0 1996-11-17 2006-10-08        9.889117
     TA    SFIN 40.379002 -87.096703        165.0 2008-10-09 2018-08-15        9.850398
     TA    KMSC 35.141998 -81.333298        240.0 2008-10-13 2018-08-15        9.839446
     LD    GCMD 39.562400 -79.338200        794.8 2018-06-26 2026-01-09        7.542647
     LD    WADE 38.679420 -75.249611         11.4 2018-06-27 2026-01-09        7.539910
     TA    L44A 42.178200 -87.911903        202.0 2011-10-10 2019-03-14        7.427323
     OH    O53A 40.249298 -81.212898        320.0 2018-09-28 2026-01-09        7.285289
     OH    P51A 39.481800 -83.060097        211.0 2018-09-28 2026-01-09        7.285289
     MU    P49A 39.534199 -84.716400        272.0 2018-09-28 2026-01-09        7.285289
     OH    M53A 41.439301 -80.675003        334.0 2018-09-28 2026-01-09        7.285289
     PE    PSUB 39.927260 -75.451260        110.0 2009-01-30 2015-12-31        6.918549
     US    YSNY 42.475800 -78.537500        628.0 1993-08-18 1999-10-01        6.119097
     LD    TRNY 41.145000 -74.224430        270.0 2014-09-04 2020-09-03        5.998631
     PE    PSWB 41.305473 -76.015182        398.0 2009-11-13 2015-10-06        5.897331
     TA    M53A 41.439301 -80.675003        334.0 2013-01-14 2018-09-27        5.702002
     US    GWDE 38.825600 -75.617100         19.0 1995-09-07 2001-05-11        5.675565
     TA    N59A 40.916801 -75.770302        508.0 2010-11-08 2016-04-19        5.447268
     TA    M54A 41.507900 -79.664703        488.0 2010-11-04 2016-04-15        5.446802
     TA    O56A 40.268299 -78.566299        684.0 2010-11-05 2016-04-14        5.442790
     N4    M44A 41.388200 -88.043200        207.0 2013-11-08 2019-03-17        5.349892
     N4    X48A 34.451700 -87.045200        180.0 2013-12-16 2019-03-17        5.246685
     N4    P46A 39.617800 -87.206700        194.0 2013-12-20 2019-03-17        5.235385
     N4    152A 32.668600 -84.718800        214.0 2014-02-03 2019-03-17        5.111709
     N4    T45B 37.015900 -88.645900        136.0 2014-02-11 2019-03-17        5.092402
     PE    PSDB 41.127480 -78.753120        437.0 2010-12-21 2016-01-11        5.059293
     N4    U49A 36.512900 -85.779600        234.0 2014-02-24 2019-03-17        5.054866
     N4    W52A 35.093500 -83.927700        519.0 2014-03-11 2019-03-17        5.013640
     N4    V53A 35.669400 -82.812400        681.0 2014-03-14 2019-03-17        5.005718
     N4    T50A 37.020400 -84.838400        302.0 2014-04-17 2019-03-17        4.911742
     N4    S51A 37.639200 -83.593500        286.0 2014-04-21 2019-03-17        4.901845
     N4    R50A 38.281600 -84.327400        255.0 2014-04-23 2019-03-17        4.896142
     N4    R49A 38.291600 -85.171400        251.0 2014-04-23 2019-03-17        4.895782
     N4    P48A 39.460500 -85.425800        300.0 2014-05-02 2019-03-17        4.870967
     N4    O49A 40.188000 -84.335300        292.0 2014-05-08 2019-03-17        4.854411
     N4    N49A 40.922000 -84.182500        225.0 2014-05-11 2019-03-17        4.847022
     N4    N47A 40.880100 -85.694200        252.0 2014-05-12 2019-03-17        4.843995
     N4    M50A 41.403500 -83.042800        176.0 2014-05-14 2019-03-17        4.838536
     N4    Y52A 33.864000 -84.062600        286.0 2014-05-25 2019-03-17        4.808661
     N4    L48A 41.943802 -84.432899        369.0 2014-05-23 2019-02-21        4.751155
     N4    V52A 35.841702 -83.595901        328.0 2014-03-08 2018-08-20        4.451966
     N4    N53A 40.806500 -80.837700        360.0 2014-10-24 2019-03-17        4.392533
     N4    M52A 41.540500 -81.357000        382.0 2014-10-28 2019-03-17        4.381534
     N4    N51A 40.918300 -82.374800        343.0 2014-11-03 2019-03-17        4.364643
     N4    O54A 40.182100 -80.377800        357.0 2014-11-24 2019-03-17        4.307427
     LD     BNY 42.089323 -75.970892        292.0 2015-10-13 2020-01-30        4.296715
     N4    O52A 40.115800 -81.836100        331.0 2014-12-01 2019-03-17        4.288300
     N4    Q52A 38.962200 -82.266900        228.0 2014-12-01 2019-03-17        4.288300
     PE    UPAO 40.482530 -80.020560        274.0 2009-07-30 2013-11-05        4.270285
     N4    Q54A 38.983600 -80.833800        254.0 2014-12-08 2019-03-17        4.269008
     N4    Y57A 34.017000 -80.391500         56.0 2015-01-21 2019-03-17        4.148756
     N4    Y58A 33.905700 -79.666500         19.0 2015-01-25 2019-03-17        4.137390
     N4    Y60A 34.004600 -78.216300          7.0 2015-01-30 2019-03-17        4.124123
     N4    W57A 35.152900 -79.992800         85.0 2015-01-30 2019-03-17        4.123560
     N4    V61A 35.791200 -76.577600          4.0 2015-02-02 2019-03-17        4.115967
     N4    T59A 36.971600 -77.554100         63.0 2015-02-04 2019-03-17        4.110333
     N4    V58A 35.794000 -79.115000        127.0 2015-02-05 2019-03-17        4.107280
     N4    R61A 38.330300 -75.339000         76.0 2015-02-09 2019-03-17        4.096164
     N4    S61A 37.680400 -75.672700         58.0 2015-02-09 2019-03-17        4.096164
     N4    P61A 39.673400 -74.791900         22.0 2015-02-12 2019-03-17        4.088147
     N4    T57A 36.998300 -79.253800        230.0 2015-03-18 2019-03-17        3.995346
     N4    V51A 35.803299 -84.351097        243.0 2014-03-10 2018-03-07        3.991467
     N4    U56A 36.347200 -80.382900        363.0 2015-04-13 2019-03-17        3.924190
     N4    U54A 36.520900 -81.820400        837.0 2015-04-13 2019-03-17        3.924141
     N4    R58B 37.963600 -77.878700        116.0 2015-04-28 2019-03-17        3.883377
     N4    S57A 37.760500 -78.953600        264.0 2015-04-28 2019-03-17        3.883377
     N4    S54A 37.799700 -81.311400        636.0 2015-04-28 2019-03-17        3.883183
     OH    P52A 39.633701 -82.132500        293.0 2018-09-28 2022-08-11        3.869952
     N4    P57A 39.483500 -78.012600        191.0 2015-05-05 2019-03-17        3.863661
     N4    N58A 40.839600 -76.715800        200.0 2015-05-14 2019-03-17        3.839438
     N4    M57A 41.337200 -77.128000        319.0 2015-05-18 2019-03-17        3.828537
     Z9    W15A 32.138000 -83.898499        102.8 2010-07-18 2014-05-14        3.822812
     N4    P51A 39.481800 -83.060097        211.0 2014-12-01 2018-09-27        3.822665
     N4    L59A 42.190200 -75.042600        677.0 2015-06-11 2019-03-17        3.764423
     N4    L56A 42.136500 -77.559100        688.0 2015-06-15 2019-03-17        3.751923
     N4    R55A 38.282500 -80.119500        833.0 2015-05-01 2018-11-30        3.582322
     N4    Q56A 39.040100 -79.187100        430.0 2015-05-05 2018-11-17        3.535482
     Z9     W23 32.523399 -83.886002        158.8 2010-07-19 2013-10-19        3.253219
     Z9     W14 32.093800 -83.898697        965.7 2010-07-18 2013-10-18        3.252956
     N4    U59A 36.352600 -77.792503         99.0 2015-02-02 2018-03-13        3.107297
     TA    O48B 40.257099 -85.155296        300.0 2016-01-12 2019-02-12        3.087612
     LM    L48A 41.943800 -84.432900        369.0 2019-01-29 2022-02-09        3.033329
     Z9     W27 32.917400 -83.923401        163.6 2011-05-10 2014-05-13        3.009274
     Z9     D15 34.449799 -83.279900        254.1 2011-05-16 2014-05-19        3.009221
     Z9     D14 34.376499 -83.181099        210.9 2011-05-16 2014-05-19        3.008961
     Z9     W33 34.654701 -83.886002        533.4 2011-05-16 2014-05-19        3.008234
     Z9     W32 34.465698 -83.865799        396.1 2011-05-17 2014-05-20        3.008170
     Z9     W16 32.179401 -83.884102        114.7 2011-05-11 2014-05-14        3.008042
     Z9     W19 32.313202 -83.906403        118.6 2011-05-11 2014-05-13        3.006827
     Z9     W21 32.403999 -83.858704        130.8 2011-05-11 2014-05-13        3.006250
     Z9     W35 34.976200 -83.943802        539.0 2011-05-17 2014-05-19        3.006042
     Z9     W29 33.456799 -83.728798        193.4 2011-05-19 2014-05-20        3.003852
     Z9     D02 33.604099 -82.282799        123.5 2011-05-18 2014-05-17        2.998063
     6E    WB08 38.800900 -88.807098        175.0 2013-10-22 2016-10-20        2.997947
     Z9     W13 32.055000 -83.893303        107.3 2011-05-16 2014-05-14        2.995108
     N4    T60A 37.139702 -76.734901         11.0 2015-04-23 2018-03-15        2.893780
     SP   TIMBR 33.335701 -79.890701         12.2 2001-09-11 2004-06-30        2.800707
     SP   DWDAN 34.738800 -82.830803        286.5 2001-09-11 2004-06-30        2.800707
     SP   BTRCK 32.431999 -80.747597          3.0 2001-09-11 2004-06-30        2.800707
     SP   RUFIN 33.012249 -80.806534         23.8 2001-09-11 2004-06-30        2.800707
     SP   AGBLF 33.395000 -81.758011        118.0 2001-09-11 2004-06-30        2.800707
     SP   GREEN 34.230000 -82.174301        182.9 2001-09-11 2004-06-30        2.800707
     SP   BRNCH 33.246498 -80.790398         53.0 2001-09-11 2004-06-30        2.800707
     SP    BBLV 33.923401 -81.534698        198.1 2001-09-11 2004-06-30        2.800707
     SP   JAMES 32.731098 -79.932899          7.0 2001-09-11 2004-06-30        2.800707
     SP   DFORK 34.153099 -81.200302         91.4 2001-09-17 2004-06-30        2.784280
     SP    WOAK 34.621471 -83.052193        268.2 2001-09-17 2004-06-30        2.784280
     SP   LGELG 34.217510 -80.709221         64.0 2001-09-17 2004-06-30        2.784280
     XQ    NC10 35.472099 -79.217903        123.0 2012-03-25 2014-12-31        2.770705
     XQ    NC04 35.554001 -79.242401         92.0 2012-03-25 2014-12-31        2.770705
     XQ    NC03 35.537300 -79.303802        100.0 2012-03-25 2014-12-31        2.770705
     XQ    NC07 35.470001 -79.379898         99.0 2012-03-25 2014-12-31        2.770705
     XQ    NC11 35.407299 -79.283203        155.0 2012-03-26 2014-12-31        2.767967
     XQ    NC05 35.533600 -79.201401         98.0 2012-03-26 2014-12-31        2.767967
     XQ    NC09 35.450500 -79.281898        121.0 2012-03-26 2014-12-31        2.767967
     XQ    NC02 35.562099 -79.468597        147.0 2012-03-26 2014-12-31        2.767967
     XQ    NC01 35.622101 -79.200996        107.0 2012-03-26 2014-12-31        2.767967
     XQ    NC12 35.384701 -79.243500        136.0 2012-03-27 2014-12-31        2.765229
     XQ    NC08 35.467800 -79.313103        106.0 2012-03-27 2014-12-31        2.765229
     TA    P60A 39.811298 -75.635803        105.0 2013-04-28 2016-02-01        2.764265
     TA    R58B 37.963600 -77.878700        116.0 2012-08-02 2015-04-28        2.736746
     XQ    NC06 35.525600 -79.016899         84.0 2012-04-07 2014-12-31        2.735113
     TA    M51A 41.332100 -82.183098        239.0 2012-08-29 2015-05-15        2.709208
     SP    EDGE 33.807301 -81.862999        217.0 2001-10-22 2004-06-30        2.688455
     TA    Q61A 38.879902 -75.325600          5.0 2013-05-28 2016-02-01        2.682130
     6E    WB45 37.723099 -86.522598        176.0 2014-05-08 2016-12-31        2.652977
     6E    WB42 37.897499 -86.824799        147.0 2014-05-09 2016-12-31        2.650240
     6E    WB44 37.798599 -86.614098        221.0 2014-05-09 2016-12-31        2.650240
     6E    WB37 38.120098 -87.286201        149.0 2014-05-11 2016-12-31        2.644764
     6E    WB38 38.069302 -87.209801        128.0 2014-05-11 2016-12-31        2.644764
     6E    WB33 38.216000 -87.522301        140.0 2014-05-12 2016-12-31        2.642026
     6E    WB34 38.187801 -87.459702        138.0 2014-05-12 2016-12-31        2.642026
     6E    WB26 38.377602 -87.855103        129.0 2014-05-13 2016-12-31        2.639288
     6E    WB32 38.237999 -87.564903        159.0 2014-05-13 2016-12-31        2.639288
     6E    WB28 38.346600 -87.732903        123.0 2014-05-14 2016-12-31        2.636550
     6E    WB30 38.279301 -87.658897        143.0 2014-05-14 2016-12-31        2.636550
     6E    WB29 38.315102 -87.714203        127.0 2014-05-15 2016-12-31        2.633812
     SP   CLINT 34.481098 -81.862801        199.0 2001-11-13 2004-06-30        2.628223
     LD    FMPA 40.047800 -76.320800        121.0 2005-02-22 2007-10-02        2.606190
     TA    S44A 37.693600 -89.255096        155.0 2011-05-20 2013-12-16        2.578091
     Z9     W31 33.972198 -83.738503        292.0 2011-10-21 2014-05-19        2.576287
     Z9     D13 34.294300 -83.166199        200.0 2011-10-22 2014-05-19        2.574399
     SP   CLOVE 35.096909 -81.184212        227.0 2002-01-15 2004-06-30        2.455738
     6E    WB11 38.716999 -88.609901        132.0 2013-05-31 2015-11-12        2.453114
     6E    WB15 38.627998 -88.409599        102.0 2013-06-06 2015-11-12        2.436687
     SP   BLACK 33.363998 -81.263451         94.0 2002-02-15 2004-06-30        2.370865
     TA    P51A 39.481800 -83.060097        211.0 2012-07-23 2014-12-01        2.359202
     SP   ACFLR 34.016529 -80.982887         91.4 2001-09-17 2004-01-24        2.353517
     TA    L53A 41.953899 -80.259804        355.0 2013-01-16 2015-05-15        2.326783
     TA    R54A 38.190899 -80.990402        512.0 2013-01-12 2015-04-27        2.288083
     SP    ANDY 33.460739 -79.571518         49.0 2002-03-18 2004-06-30        2.285991
     TA    O52A 40.115799 -81.836098        331.0 2012-08-25 2014-12-01        2.268853
     TA    Q52A 38.962200 -82.266899        228.0 2012-08-26 2014-12-01        2.266115
     TA    O51A 40.146999 -82.605598        380.0 2012-08-24 2014-11-27        2.260581
     TA    P53A 39.486801 -81.389603        270.0 2012-08-27 2014-11-24        2.244250
     TA    P43A 39.640900 -89.521301        176.0 2011-08-16 2013-11-08        2.233955
     6E    WB46 38.410999 -87.752899        129.0 2014-10-24 2016-12-31        2.190281
     TA    N51A 40.918301 -82.374802        343.0 2012-08-28 2014-11-03        2.184296
     TA    Q53A 38.858601 -81.525101        310.0 2013-02-27 2015-04-29        2.167399
     TA    P46A 39.617802 -87.206703        194.0 2011-10-22 2013-12-20        2.165025
     TA    Y52A 33.863998 -84.062599        286.0 2012-04-08 2014-05-25        2.129053
     TA    U54A 36.520901 -81.820396        837.0 2013-02-28 2015-04-13        2.121034
     TA    L58A 42.044701 -75.850197        447.0 2013-07-03 2015-08-08        2.099114
     TA    S57A 37.760502 -78.953598        264.0 2013-03-28 2015-04-28        2.085137
     TA    T56A 37.028801 -80.031097        387.0 2013-03-16 2015-04-12        2.074131
     TA    S56A 37.677101 -79.566200        449.0 2013-04-03 2015-04-30        2.074112
     TA    T58A 36.945400 -78.533798        167.0 2013-03-18 2015-04-13        2.071688
     TA    O44A 40.152599 -88.467102        213.0 2011-10-15 2013-11-08        2.069684
     TA    X60A 34.577301 -77.976799         12.0 2013-03-10 2015-04-04        2.068865
     TA    W56A 35.134998 -80.582802        177.0 2013-03-08 2015-04-02        2.068865
     TA    O59A 40.311401 -76.185898        334.0 2013-04-28 2015-05-21        2.063408
     6E    WB23 38.448399 -88.004700        123.0 2013-10-22 2015-11-12        2.058864
     TA    V59A 35.764900 -78.239403         58.0 2013-03-12 2015-04-01        2.055527
     TA    M44A 41.388199 -88.043198        207.0 2011-10-21 2013-11-08        2.053257
     Z9    W315 34.177898 -83.853104        334.6 2012-05-02 2014-05-20        2.047614
     TA    X59A 34.571999 -78.602303         29.0 2013-02-10 2015-02-27        2.047095
     TA    X57A 34.464298 -80.094002        133.0 2013-02-09 2015-02-25        2.044328
     TA    L42A 42.004002 -89.667000        257.0 2011-11-05 2013-11-19        2.042437
     TA    P59A 39.610100 -76.432701        157.0 2013-04-27 2015-05-12        2.041515
     Z9     D06 33.859001 -82.630402        152.2 2012-05-04 2014-05-19        2.039598
     Z9     D03 33.659401 -82.388397        129.5 2012-05-04 2014-05-17        2.034632
     Z9     D07 33.937599 -82.686401        140.2 2012-05-04 2014-05-17        2.034052
     Z9     E31 32.986599 -82.107002         77.6 2012-05-05 2014-05-17        2.031291
     Z9     E30 32.695801 -82.109100         98.4 2012-05-05 2014-05-17        2.031267
     Z9     E28 32.335899 -82.096703         68.3 2012-05-05 2014-05-17        2.030968
     TA    S59A 37.762001 -77.294197         40.0 2013-04-12 2015-04-23        2.030335
     TA    U58A 36.394402 -78.549301        169.0 2013-03-21 2015-04-01        2.030326
     Z9     E27 32.236198 -82.109100         76.9 2012-05-06 2014-05-17        2.028932
     Z9     E26 32.097900 -82.099098         66.1 2012-05-06 2014-05-17        2.028740
     TA    V56A 35.809700 -80.496300        237.0 2013-03-24 2015-04-03        2.028196
     TA    Q57A 39.035301 -78.410698        324.0 2013-04-25 2015-05-05        2.027664
     Z9     D20 35.074001 -83.980301        478.3 2012-05-10 2014-05-19        2.025745
     Z9     D22 35.462898 -84.458801        272.3 2012-05-09 2014-05-19        2.025529
     Z9     E29 32.490799 -82.103203         79.4 2012-05-07 2014-05-17        2.025253
     Z9     D19 34.872101 -83.733803        665.0 2012-05-10 2014-05-20        2.024928
     Z9     D21 35.199699 -84.136902        526.4 2012-05-10 2014-05-19        2.023734
     Z9     D18 34.734200 -83.612099        486.8 2012-05-11 2014-05-20        2.023458
     TA    S60A 37.705502 -76.653503         36.0 2013-04-15 2015-04-23        2.022692
     TA    Z59A 33.241402 -79.278000          8.0 2013-02-23 2015-03-03        2.022616
     XO    LG19 37.595699 -89.045898        206.8 2011-07-18 2013-07-24        2.018024
     6E    WB21 38.490700 -88.109001        132.0 2014-04-26 2016-05-01        2.017796
     TA    V48A 35.740002 -86.821899        278.0 2011-12-11 2013-12-16        2.016832
     TA    R59A 38.200500 -77.116402         35.0 2013-04-16 2015-04-21        2.014649
     TA    S45A 37.677399 -88.580399        122.0 2011-05-19 2013-05-22        2.011465
     TA    R60A 38.268398 -76.580704         33.0 2013-04-18 2015-04-22        2.011094
     Z9     D04 33.730099 -82.451797        127.6 2012-05-15 2014-05-19        2.008833
     TA    X48A 34.451698 -87.045197        180.0 2011-12-14 2013-12-16        2.008619
     XO    LG21 37.669102 -88.794098        145.0 2011-07-21 2013-07-23        2.007985
     TA    R57A 38.297001 -78.523201        230.0 2013-04-25 2015-04-27        2.006312
     TA    X53A 34.503101 -83.301300        240.0 2012-04-11 2014-04-13        2.005875
     7A    NAZF 39.380199 -80.639801          0.0 2014-10-23 2016-10-24        2.004848
     TA    T57A 36.998299 -79.253799        230.0 2013-03-17 2015-03-18        2.003285
     7A    MUSK 39.997601 -81.736801          0.0 2014-10-24 2016-10-24        2.002415
     7A    PETO 39.160198 -80.329498          0.0 2014-10-24 2016-10-24        2.002339
     7A    CDRF 39.455502 -81.052399        282.0 2014-10-24 2016-10-24        2.001882
     7A    PVGR 39.571499 -81.382103          0.0 2014-10-24 2016-10-24        2.001711
     7A    AZZI 40.366402 -82.919098        294.0 2014-10-25 2016-10-24        2.001369
     7A    SUSI 40.429100 -83.181801          0.0 2014-10-25 2016-10-24        1.999468
     TA    Y49A 33.857700 -86.411903        362.0 2011-12-18 2013-12-16        1.997668
     TA    V60A 35.764999 -77.262901          8.0 2013-04-06 2015-04-05        1.997623
     TA    R58A 38.298901 -78.003403        184.0 2013-04-17 2015-04-15        1.995047
     TA    N57A 40.755600 -77.550903        306.0 2013-05-13 2015-05-10        1.992215
     6E    WB24 38.423698 -87.981102        125.0 2014-05-08 2016-05-01        1.984942
     TA    M56A 41.483700 -78.182602        493.0 2013-05-20 2015-05-14        1.984029
     TA    U60A 36.471802 -77.159599          8.0 2013-04-23 2015-04-17        1.983953
     TA    U61A 36.331902 -76.446404          4.0 2013-04-24 2015-04-18        1.983877
     TA    V62A 35.561199 -75.957001         -3.0 2013-04-25 2015-04-19        1.983715
     6E    WB20 38.518700 -88.186203        123.0 2014-05-12 2016-05-01        1.973990
     6E    WB17 38.580399 -88.311600        144.0 2014-05-12 2016-05-01        1.973990
     TA    U56A 36.347198 -80.382896        363.0 2013-04-24 2015-04-13        1.970403
     TA    N56A 40.917099 -78.295303        561.0 2013-05-21 2015-05-10        1.970150
     6E    WB22 38.468700 -88.058403        145.0 2014-05-15 2016-05-01        1.965777
     TA    X58A 34.554798 -79.338799         45.0 2013-02-08 2015-01-26        1.964666
     TA    O50A 40.146801 -83.619904        399.0 2012-06-15 2014-06-02        1.964560
     TA    N60A 40.870399 -75.099998        189.0 2013-06-12 2015-05-28        1.959341
     TA    W59A 35.167301 -78.443001         60.0 2013-03-09 2015-02-21        1.957050
     TA    P57A 39.483501 -78.012604        191.0 2013-05-21 2015-05-05        1.957010
     TA    X56A 34.492298 -81.031898        112.0 2013-02-04 2015-01-19        1.956689
     TA    W60A 35.052799 -77.713303         30.0 2013-03-09 2015-02-20        1.953903
     TA    N50A 40.771099 -83.148598        277.0 2012-06-20 2014-06-02        1.951460
     TA    P50A 39.608601 -83.798798        318.0 2012-06-19 2014-06-01        1.951070
     TA    S54A 37.799702 -81.311401        636.0 2013-05-17 2015-04-28        1.948439
     TA    O54A 40.182098 -80.377800        357.0 2012-12-14 2014-11-24        1.945824
     TA    U57A 36.431900 -79.336403        178.0 2013-04-21 2015-03-31        1.942866
     TA    M59A 41.541302 -75.432098        471.0 2013-06-12 2015-05-20        1.937971
     TA    L49A 42.108799 -83.767197        230.0 2012-07-20 2014-06-26        1.935635
     TA    S52A 37.679100 -83.078400        367.0 2012-05-16 2014-04-21        1.932476
     TA    P55A 39.507801 -79.826500        551.0 2012-12-14 2014-11-19        1.932048
     SP    OLAR 33.326401 -81.131104         61.0 2002-07-26 2004-06-30        1.930071
     TA    S51A 37.639198 -83.593498        286.0 2012-05-17 2014-04-21        1.929093
     TA    T52A 37.107601 -82.985199        436.0 2012-05-15 2014-04-18        1.927067
     TA    158A 32.736401 -80.193497         12.0 2013-02-24 2015-01-28        1.926809
     TA    Q43A 38.941002 -89.699097        202.0 2011-05-24 2013-04-25        1.923949
     TA    Y60A 34.004601 -78.216301          7.0 2013-02-27 2015-01-30        1.923790
     7A    FOXP 38.627102 -79.245399        485.0 2014-11-22 2016-10-24        1.922361
     TA    Y57A 34.016998 -80.391502         56.0 2013-02-19 2015-01-21        1.921060
     TA    O55A 40.207600 -79.304100        469.0 2012-12-15 2014-11-15        1.918321
     7A    ALMA 39.404800 -80.836403        233.0 2014-11-24 2016-10-24        1.916952
     TA    T49A 37.105000 -85.533401        313.0 2012-05-21 2014-04-17        1.907265
     N4    W59A 35.167300 -78.443000         60.0 2017-04-20 2019-03-17        1.905544
     TA    Z57A 33.297001 -80.703903         81.0 2013-02-20 2015-01-16        1.905088
     TA    W52A 35.093498 -83.927696        519.0 2012-04-15 2014-03-11        1.904907
     TA    R53A 38.330700 -81.952202        294.0 2013-01-13 2014-12-09        1.904495
     TA    T50A 37.020401 -84.838402        302.0 2012-05-23 2014-04-17        1.902765
     TA    Q51A 39.026001 -83.345596        362.0 2012-06-26 2014-05-21        1.902133
     TA    T53A 36.982300 -82.535004        818.0 2013-01-18 2014-12-13        1.901808
     TA    W57A 35.152901 -79.992798         85.0 2013-03-08 2015-01-30        1.899711
     TA    N55A 40.780800 -78.986198        559.0 2012-12-12 2014-11-05        1.899137
     TA    V61A 35.791199 -76.577599          4.0 2013-03-11 2015-02-02        1.899091
     TA    154A 32.613098 -83.106598        111.0 2012-03-20 2014-02-10        1.896467
     TA    O58A 40.123100 -76.922798        321.0 2013-06-15 2015-05-07        1.893927
     TA    S53A 37.681499 -82.126404        564.0 2013-01-15 2014-12-07        1.893832
     TA    157A 32.678001 -80.997200         21.0 2013-02-25 2015-01-15        1.888280
     N4    Y59A 33.989700 -78.873703          2.0 2015-01-25 2016-12-13        1.883512
     TA    W53A 35.169601 -83.163002       1180.0 2012-04-14 2014-03-02        1.882719
     TA    T51A 36.965500 -83.945396        329.0 2012-05-31 2014-04-18        1.882548
     TA    O49A 40.188000 -84.335297        292.0 2012-06-21 2014-05-08        1.880702
     TA    R49A 38.291599 -85.171402        251.0 2012-06-06 2014-04-23        1.880399
     TA    T59A 36.971600 -77.554100         63.0 2013-03-20 2015-02-04        1.880084
     TA    R56A 38.407101 -79.403099        902.0 2013-06-22 2015-05-09        1.879915
     TA    246A 32.014301 -89.128601        113.0 2011-03-26 2013-02-08        1.877263
     TA    S50A 37.679001 -84.400299        300.0 2012-06-05 2014-04-20        1.874829
     TA    Q58A 38.941299 -77.681999        182.0 2013-06-21 2015-05-06        1.874344
     TA    U59A 36.352600 -77.792503         99.0 2013-03-21 2015-02-02        1.871712
     TA    S55A 37.772400 -80.501297        647.0 2013-01-29 2014-12-12        1.869011
     TA    N53A 40.806499 -80.837700        360.0 2012-12-11 2014-10-24        1.868932
     TA    S49A 37.784901 -85.287498        230.0 2012-06-08 2014-04-20        1.866140
     TA    X55A 34.470100 -81.633598        153.0 2013-02-06 2014-12-19        1.866092
     TA    T54A 37.060799 -81.576202        852.0 2013-01-30 2014-12-11        1.864087
     TA    Y54A 33.862099 -82.688004        176.0 2012-04-10 2014-02-18        1.861159
     TA    Q54A 38.983601 -80.833801        254.0 2013-01-28 2014-12-08        1.861040
     TA    N58A 40.839600 -76.715797        200.0 2013-07-04 2015-05-14        1.860768
     TA    Q48A 38.929501 -85.731102        185.0 2012-06-23 2014-05-03        1.860693
     TA    153A 32.649899 -83.831596        160.0 2012-03-19 2014-01-26        1.858639
     TA    Q49A 39.005001 -84.895599        264.0 2012-06-24 2014-05-03        1.858430
     TA    Q44A 38.903198 -89.016998        164.0 2011-06-07 2013-04-15        1.858117
     TA    W49A 35.119400 -86.264503        251.0 2012-04-18 2014-02-24        1.855807
     TA    Z52A 33.189301 -84.417603        252.0 2012-04-11 2014-02-17        1.855759
     TA    Y53A 33.855400 -83.583603        234.0 2012-04-12 2014-02-18        1.855274
     TA    P48A 39.460499 -85.425797        300.0 2012-06-25 2014-05-02        1.853194
     TA    R50A 38.281601 -84.327400        255.0 2012-06-17 2014-04-23        1.849922
     TA    156A 32.654202 -81.495003         40.0 2012-04-05 2014-02-09        1.849836
     TA    M49A 41.474499 -83.975197        203.0 2012-07-17 2014-05-23        1.849722
     TA    Z53A 33.280102 -83.571297        144.0 2012-04-09 2014-02-10        1.841585
     TA    152A 32.668598 -84.718803        214.0 2012-04-03 2014-02-03        1.839656
     TA    V51A 35.803299 -84.351097        243.0 2012-05-08 2014-03-10        1.839185
     TA    Z55A 33.221100 -82.135902        100.0 2012-04-06 2014-02-06        1.838990
     TA    V45A 35.740299 -88.959099        126.0 2011-05-15 2013-03-16        1.838885
     TA    L48A 41.943802 -84.432899        369.0 2012-07-21 2014-05-23        1.838851
     TA    W44A 35.139500 -89.816101        101.0 2011-05-12 2013-03-13        1.838847
     TA    X54A 34.547401 -82.374298        213.0 2013-02-14 2014-12-17        1.838714
     TA    M48A 41.484600 -84.717102        258.0 2012-07-22 2014-05-23        1.836499
     TA    W54A 35.085701 -82.185898        272.0 2013-02-15 2014-12-17        1.836461
     TA    L56A 42.136501 -77.559097        688.0 2013-08-17 2015-06-15        1.827817
     TA    V54A 35.777100 -81.947800        448.0 2013-02-18 2014-12-15        1.822667
     TA    M50A 41.403500 -83.042801        176.0 2012-07-18 2014-05-14        1.822655
     TA    R52A 38.336601 -82.644302        300.0 2012-06-28 2014-04-24        1.822420
     TA    R51A 38.300098 -83.583397        231.0 2012-06-27 2014-04-23        1.822182
     TA    Y46A 33.882801 -88.857697        109.0 2011-04-14 2013-02-06        1.820091
     TA    V53A 35.669399 -82.812401        681.0 2012-05-20 2014-03-14        1.817006
     TA    V52A 35.841702 -83.595901        328.0 2012-05-14 2014-03-08        1.816999
     TA    Y47A 33.902500 -87.849403        160.0 2011-04-13 2013-02-03        1.814577
     TA    Y45A 33.865601 -89.543098        106.0 2011-04-16 2013-02-06        1.814263
     TA    U55A 36.502300 -81.047203        863.0 2013-02-21 2014-12-13        1.809501
     TA    W45A 35.156799 -89.185997        187.0 2011-05-17 2013-03-07        1.808797
     TA    Z48A 33.376400 -87.555603        101.0 2011-04-15 2013-02-03        1.808759
     TA    V49A 35.766300 -85.903000        329.0 2012-05-06 2014-02-24        1.805983
     TA    T55A 37.117001 -80.784302        644.0 2013-02-20 2014-12-11        1.805917
     TA    248A 32.094002 -87.739304        103.0 2011-04-08 2013-01-25        1.803997
     TA    P54A 39.602001 -80.479599        473.0 2013-01-27 2014-11-16        1.803417
     TA    Z45A 33.370499 -89.691299        113.0 2011-04-19 2013-02-04        1.800584
     TA    Z47A 33.199001 -88.069603         65.0 2011-04-16 2013-01-31        1.798150
     TA    V50A 35.671299 -85.099998        287.0 2012-05-07 2014-02-22        1.798093
     TA    V58A 35.793999 -79.114998        127.0 2013-04-22 2015-02-05        1.792788
     TA    U53A 36.364399 -82.576500        559.0 2012-05-21 2014-03-06        1.792408
     XO    KG29 37.717899 -87.472603        129.0 2013-07-26 2015-05-11        1.790932
     TA    Z46A 33.193298 -88.941399        125.0 2011-04-17 2013-01-29        1.790336
     XO    KF30 37.884701 -87.393700        119.0 2013-07-29 2015-05-11        1.782445
     XO    KG31 37.653000 -87.180496        129.0 2013-07-29 2015-05-11        1.782428
     XO    KI29 37.273102 -87.557602        134.0 2013-07-31 2015-05-12        1.779916
     XO    KH32 37.423302 -87.276100        163.0 2013-07-31 2015-05-12        1.779803
     TA    M52A 41.540501 -81.357002        382.0 2013-01-17 2014-10-28        1.778630
     XO    KI31 37.252899 -87.285797        167.0 2013-08-01 2015-05-12        1.777557
     XO    KH30 37.470600 -87.464302        146.0 2013-07-31 2015-05-11        1.777542
     XO    KK34 36.908100 -86.820801        206.0 2013-08-02 2015-05-12        1.774793
     XO    KG35 37.643101 -86.614098        164.0 2013-08-02 2015-05-12        1.774782
     XO    KG27 37.647301 -87.901199        210.0 2013-08-01 2015-05-11        1.774567
     XO    KH34 37.473999 -86.926903        136.0 2013-08-02 2015-05-12        1.774501
     XO    KK36 36.935501 -86.577698        170.0 2013-08-02 2015-05-12        1.774496
     XO    KJ34 37.109798 -86.923401        182.0 2013-08-02 2015-05-12        1.774412
     XO    KH26 37.456699 -88.008202        187.0 2013-08-01 2015-05-11        1.774241
     XO    NE27 37.966000 -87.822601        125.0 2013-07-29 2015-05-07        1.771478
     TA    M42A 41.454601 -89.758102        212.0 2011-07-30 2013-05-06        1.770933
     SP   MYRTL 33.863602 -78.667999         23.0 2001-09-11 2003-06-19        1.770933
     XO    NE31 37.974300 -87.172699        119.0 2013-07-30 2015-05-07        1.769355
     TA    L59A 42.190201 -75.042603        677.0 2013-09-03 2015-06-11        1.768773
     TA    N48A 40.859100 -85.027100        250.0 2012-08-31 2014-06-07        1.767330
     XO    NC33 38.318001 -87.023804        161.0 2013-07-29 2015-05-05        1.766745
     TA    U49A 36.512901 -85.779602        234.0 2012-05-22 2014-02-24        1.762382
     XO    NE33 38.040798 -86.877998        127.0 2013-08-01 2015-05-05        1.758385
     TA    M47A 41.359402 -85.621399        283.0 2012-09-05 2014-06-07        1.754259
     TA    N46A 40.894901 -86.735199        209.0 2011-10-13 2013-07-13        1.751141
     TA    N45A 40.847900 -87.511803        206.0 2011-10-12 2013-07-11        1.749163
     TA    N44A 40.795300 -88.133301        202.0 2011-10-16 2013-07-15        1.748669
     TA    U51A 36.378601 -84.016502        472.0 2012-05-30 2014-02-27        1.748641
     TA    U50A 36.415600 -84.843102        474.0 2012-05-28 2014-02-23        1.743041
     TA    L43A 42.183300 -88.742302        266.0 2011-09-17 2013-06-14        1.743041
     6E    WB35 38.177700 -87.396896        144.0 2014-05-12 2016-02-04        1.735360
     TA    X45A 34.424099 -89.393097        142.0 2011-05-16 2013-02-07        1.735046
     TA    O45A 40.248901 -87.724403        208.0 2011-10-17 2013-07-11        1.734904
     TA    P44A 39.467602 -88.620903        195.0 2011-08-06 2013-04-29        1.732404
     TA    O47A 40.236099 -86.174202        278.0 2011-10-21 2013-07-13        1.729789
     TA    L60A 41.988998 -74.222603        388.0 2013-09-04 2015-05-28        1.729200
     TA    M60A 41.326500 -74.625000        292.0 2013-08-31 2015-05-23        1.726671
     TA    M45A 41.388100 -87.250397        216.0 2011-10-23 2013-07-14        1.726510
     TA    M46A 41.407902 -86.352402        242.0 2011-10-24 2013-07-14        1.724342
     TA    N61A 40.751900 -74.296898        108.0 2013-09-05 2015-05-27        1.723819
     TA    O43A 40.285599 -89.313004        224.0 2011-08-17 2013-05-07        1.723772
     TA    L57A 42.000500 -76.849197        546.0 2013-08-29 2015-05-19        1.721519
     TA    L55A 42.183102 -78.436798        633.0 2013-01-24 2014-10-14        1.721100
     TA    M55A 41.468601 -78.764900        531.0 2013-01-26 2014-10-14        1.715932
     TA    Q60A 39.001598 -75.842903         14.0 2013-05-28 2015-02-13        1.715672
     TA    M57A 41.337200 -77.127998        319.0 2013-08-30 2015-05-18        1.715611
     TA    L46A 42.012699 -86.295502        223.0 2012-09-08 2014-05-27        1.715457
     TA    P61A 39.673401 -74.791901         22.0 2013-05-29 2015-02-12        1.710621
     TA    S61A 37.680401 -75.672699         58.0 2013-05-27 2015-02-09        1.708079
     TA    R61A 38.330299 -75.338997         76.0 2013-05-27 2015-02-09        1.708079
     TA    W51A 35.160599 -84.759903        260.0 2012-06-13 2014-02-22        1.696403
     XO    LH20 37.517899 -88.834900        223.1 2012-06-13 2014-02-21        1.694730
     TA    N43A 40.939400 -89.173500        215.0 2011-11-04 2013-07-14        1.694026
     TA    Z51A 33.316700 -85.174698        249.0 2012-04-07 2013-12-16        1.693766
     TA    Q47A 38.936199 -86.426102        230.0 2011-11-07 2013-07-14        1.685955
     TA    N47A 40.880100 -85.694199        252.0 2012-09-04 2014-05-12        1.685779
     TA    N49A 40.922001 -84.182503        225.0 2012-09-03 2014-05-11        1.685490
     TA    T45A 37.019600 -88.644699        119.0 2011-11-17 2013-07-23        1.683056
     TA    T46A 37.041698 -87.894096        169.0 2011-11-18 2013-07-23        1.679843
     TA    U46A 36.359001 -88.177299        146.0 2011-11-20 2013-07-24        1.677209
     XO    SCCC 41.764851 -74.670135        463.0 1997-06-19 1999-02-22        1.677142
     XO   LG25A 37.662498 -88.458801        127.9 2011-11-18 2013-07-22        1.676099
     TA    Q46A 39.023102 -87.357498        164.0 2011-11-08 2013-07-11        1.675051
     TA    T48A 37.109402 -86.394302        218.0 2011-11-19 2013-07-20        1.669053
     Z9     D10 34.091702 -82.903198        185.7 2012-09-10 2014-05-12        1.667142
     TA    R46A 38.212399 -87.511398        164.0 2011-11-14 2013-07-12        1.661286
     TA    R45A 38.292599 -88.281197        143.0 2011-11-14 2013-07-12        1.660811
     TA    X46A 34.556400 -88.584396        150.0 2011-12-08 2013-08-03        1.655867
     TA    Q45A 38.894798 -88.156502        162.0 2011-11-19 2013-07-15        1.655326
     TA    S46A 37.684898 -87.715302        125.0 2011-11-24 2013-07-19        1.653177
     TA    P45A 39.527699 -87.743896        193.0 2011-11-16 2013-07-11        1.652654
     SP   TRLBY 34.028099 -79.359558         15.2 2001-09-17 2003-05-12        1.650397
     XO    LF26 37.744999 -88.129997        158.0 2013-09-19 2015-05-11        1.641056
     XR    FA07 34.731232 -86.710449        178.0 2001-05-11 2002-12-31        1.640412
     TA    Y48A 33.913101 -87.169601        170.0 2011-12-17 2013-08-06        1.639336
     TA    Y50A 33.891102 -85.734703        248.0 2011-12-20 2013-08-08        1.636836
     TA    X47A 34.517799 -87.857101        212.0 2011-12-10 2013-07-29        1.636674
     TA    R47A 38.295700 -86.527000        181.0 2011-11-25 2013-07-14        1.636151
     TA    Z49A 33.194199 -86.531097        134.0 2011-12-19 2013-08-06        1.633337
     XR    FA04 32.751015 -84.920647        175.0 2001-05-14 2002-12-31        1.631922
     XR    FA05 33.572838 -85.109482        303.0 2001-05-15 2002-12-31        1.629364
     TA    X49A 34.512600 -86.325996        182.0 2011-12-11 2013-07-26        1.625884
     TA    U48A 36.510700 -86.540199        268.0 2011-12-10 2013-07-20        1.612100
     TA    R48A 38.400101 -85.871399        243.0 2011-12-09 2013-07-18        1.609476
     TA    U45A 36.348099 -88.763496        144.0 2011-08-08 2013-03-14        1.600749
     XO    KH50 37.417000 -84.463303        289.0 2014-03-12 2015-10-17        1.600037
     XO    KI51 37.185699 -84.507500        311.0 2014-03-12 2015-10-17        1.599494
     XO    KI49 37.220699 -84.749802        345.0 2014-03-12 2015-10-17        1.599145
     TA    U44B 36.339100 -89.350700        136.0 2011-08-04 2013-03-09        1.598011
     TA    L54A 42.234501 -79.316200        432.0 2013-03-26 2014-10-27        1.589665
     XO    KK48 36.867199 -84.944199        318.0 2014-03-19 2015-10-17        1.580595
     TA    148A 32.646900 -87.570999         63.0 2012-01-16 2013-08-07        1.559957
     TA    150A 32.606701 -86.022003        145.0 2012-01-18 2013-08-09        1.559558
     TA    151A 32.526901 -85.326698        211.0 2012-01-19 2013-08-09        1.557219
     TA    149A 32.598301 -86.791603        138.0 2012-01-17 2013-08-07        1.556772
     TA    251A 32.092899 -85.408997        139.0 2012-01-24 2013-08-09        1.543844
     TA    V47A 35.827801 -87.520500        240.0 2012-01-12 2013-07-28        1.543083
     TA    V46A 35.800701 -88.117699        162.0 2012-01-13 2013-07-28        1.540716
     TA    W48A 35.138599 -86.933296        260.0 2012-01-15 2013-07-26        1.529451
In [23]:
import pygmt
import pandas as pd

# -----------------------------
# Input station CSV
# -----------------------------
station_file = "appalachian_BH_stations_1.5yr_plus.csv"
df = pd.read_csv(station_file)

# -----------------------------
# Appalachian region
# -----------------------------
region = [-90.0, -74.0, 32, 42.5]
projection = "M6.5i"

# -----------------------------
# Create figure
# -----------------------------
fig = pygmt.Figure()

# -----------------------------
# Basemap
# -----------------------------
fig.coast(
    region=region,
    projection=projection,
    land="gray95",
    water="white",
    borders=[
        "1/1p,black",
        "2/0.8p,gray40"
    ],
    shorelines="0.5p,gray50",
    frame=["ag", 'WSne+t"Appalachian Long-Term BH Stations (>= 1.5 years)"']
)

# -----------------------------
# Symbol size (fixed for clarity)
# -----------------------------
sizes = 0.5  # fixed size in cm

# -----------------------------
# Create CPT (colormap) for duration
# -----------------------------
vmin = df["duration_years"].min()
vmax = df["duration_years"].max()
pygmt.makecpt(cmap="viridis", series=[vmin, vmax, (vmax-vmin)/10])

# -----------------------------
# Plot stations as triangles with color = duration
# -----------------------------
fig.plot(
    x=df["longitude"],
    y=df["latitude"],
    style=f"t{sizes}c",
    fill=df["duration_years"],
    cmap=True,       # use the CPT we just created
    pen="0.6p,white"
)

# -----------------------------
# Add colorbar
# -----------------------------
fig.colorbar(frame='af+l"Duration (years)"', position="JMR+o0.5c/0c+w7c/0.5c")

# -----------------------------
# Save output
# -----------------------------
fig.savefig("appalachian_longterm_1.5yr_BH_stations_triangles_colored.png", dpi=300)
fig.show()
No description has been provided for this image