I’m a ham radio operator and use what’s called packet radio frequently. This is a mode that is essentially a computer network over radio. It’s useful to know the location of other packet stations so you know where you can “hop” to, by making multiple connections.

So I wrote some Python that automatically connects to different nodes and scrapes the stations they hear. I use an API to get the station locations based on callsign, and these locations are saved in a PostGIS database. I use GeoServer to serve up the layers you see in the webmap.

I’m wondering how I can improve this? Maybe someone has some ideas I can implement? I’ve tried adding a line layer to show a spiderweb of who can hear who, but it becomes a huge mess and causes the map to lag quite a bit.

This has been my first webmap so I’m sure there’s a lot to improve. Please critique away!

https://www.packetradiomap.com

  • em2
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 year ago

    You might consider clustering your points so it doesn’t look so busy when zoomed out. You may need certain licensing for this tool, so simply importing arcpy may not work, but could be worth a try. If that doesn’t work, look around for the QGIS equivalent tool, as they are open source.

    You may want to add a legend/key that shows what each colored dot is equivalent to. I see the layer list in the top corner, but it doesn’t display what each layer corresponds to unless you flicker them on and off, or start clicking on random points. It may already exist and show up for browsers on PC, but doesn’t for smaller resolutions such as my phone’s browser.

    My last suggestion would be to add a (non-visible) zip code/region/city layer and display the points with a general offset applied to all points for public viewing. You could possibly require a verified qrz login to see the more precise locations for each point. I know if I were on that site, I would like my location to be obfuscated in some way from the general public. Maybe get some input from your community on that?

    Very cool map and it’s looking good!

    • minorsecondOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Thanks! Clustering is something I’ve considered. I didn’t use any ESRI products for this project but there has got to be something available in OpenLayers. The jittering is a good idea as well. I may just do that for everything since being off by half a mile or so won’t be a big deal for this map’s purposes.

      • em2
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        I’m more familiar with ESRI products, but it’s proprietary, which I dislike. QGIS does a good job of providing similar tools but may require more steps to achieve.

        As for your connection idea, you could create separate layers for each group type and symbolize the thickness depending on the frequency values with a radial map. I say separate layers because I feel the visual would get cluttered really fast. Again, ESRI link, but there’s likely a QGIS or other available python codes you could search for.

        • minorsecondOPM
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          So I don’t think using QGIS will work for this because this map is dynamic - it is updated every 15 minutes. So anything I do will have to be in JavaScript using OpenLayers. Your points still stand though.

          • em2
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

            You can use QGIS for the geoprocesses and symbology, then export the python code. You won’t need to open it and use it every time. Just import the required libraries for the processes you’d want. I’m not familiar with JavaScript though, so you would know best on what would work for you. Good luck! 😊