- POIs CLI -- save your trip plans and see places to go with automated day trip itineraries, geopandas buffer

places lookup
places plan
places add

# compare speed with sjoin
def intersect_using_spatial_index(source_gdf, intersecting_gdf):
    source_sindex = source_gdf.sindex
    possible_matches_index = []

    for other in intersecting_gdf.itertuples():
        bounds = other.geometry.bounds
        c = list(source_sindex.intersection(bounds))
        possible_matches_index += c

    unique_candidate_matches = list(set(possible_matches_index))
    possible_matches = source_gdf.iloc[unique_candidate_matches]

    result = possible_matches.loc[possible_matches.intersects(intersecting_gdf.unary_union)]
    return result


- wt/lt/search join and use fts on both tables, threading ?

- improve playlists subcommand

- upscale command -- download higher quality videos; use webpath, PURL, comment to get URL

- make generic printer. support --json or --csv for most subcommands

- improve dlstatus subcommand tests

- scan bpm and key sig

    https://github.com/aubio/aubio
    https://github.com/tyiannak/pyAudioAnalysis

- cluster images

    https://github.com/rhsimplex/image-match/blob/master/image_match/goldberg.py
    https://github.com/HughKu/Im2txt
    https://github.com/immich-app/immich/tree/main/machine-learning/app

- CLI EDA tool

- CLI incremental diff (SQLITE, NDJSON, CSV)

    compare 100 rows at a time using primary key

    show the differences between files

- todo recursive todo management, fortune cookie style

- CLI recursive financial planner (nano budget)

- CLI incremental book reading

- CLI reverse flight search

- CLI city abacus

- CLI UNLI Neighborhoods
