Group Details Private


  • Nathaniel

    2-D histogram plotting of raw survey data, using a function similar to:

    def plot_hist(
        if type(plot_title) == type(None):
            plot_title = "{} bins = \'{}\'".format(, bins)
        if type(dataset_title) == type(""):
            plot_title = dataset_title + " " + plot_title
        series = pd.Series(data.values)
        if bins in ['auto', 'fd', 'doane', 'scott', 'rice', 'sturges', 'sqrt']:
            print(bins, " ",)
            count, bins = np.histogram(series, bins=bins)
        ax = series.plot.hist(bins=bins,alpha=0.7)
        return ax

    0_1568216892033_Mowing Survey - 2 x 2 NaI, Phone GPS 20190709_1642 map resample.png

    posted in Data Treatments read more
  • Nathaniel


    Much happier than he looks, promise. Setting out for a quick boundary survey...

    See the post in the Data Treatments section, Mapping GPS-located data using Python libraries for a depiction of the results of this walkaround survey

    posted in General Discussion read more
  • Nathaniel

    Some work has been done to make geolocated count-rate data easy to plot over satellite imagery or custom maps using the NumPy and Pandas libraries, and pylab for plotting the data.

    Currently, the data model that is downloaded from the dashboard can be imported in to python with the libraries previously mentioned:

    counts_pro_dtype = np.dtype([
        ('_id', 'S'),
        ('name', 'S'),
        ('created', 'O'),
        ('locationDescription', 'S'),
        ('locationGps', 'O'),
        ('meterModel', 'S'),
        ('meterSerialNumber', 'S'),
        ('probeModel', 'S'),
        ('probeSerialNumber', 'S'),
        ('scalerLength', np.int32),
        ('userId', 'S'),
        ('_id_1', 'S'),
        ('emaCount', np.int32),
        ('locationGps_1', 'O'),
        ('rawCount', np.int32),
        ('timeElapsed', np.float64),
        ('timestamp', 'O'),

    A little bit of processing needs to be done to get the data-types to cooperate:

    def counts_pro_data(folder_name, file_name):
        dataset = pd.read_csv(
            folder_name + file_name,
            header = 0,
            skiprows = 0,
            dtype = counts_pro_dtype,
            parse_dates = [2,16],
            converters = {
                "locationGps": ast.literal_eval,
                "locationGps.1": ast.literal_eval,
        dataset[['locationGps_1_lon', 'locationGps_1_lat']] = dataset['locationGps.1'].apply(pd.Series)
        return dataset, file_name

    For those interested in exploring this topic more, there will continue to be improvements made to this workflow.
    It is possible that there will be some faculty for generating maps like this via the web-app, but the priority significant development of this feature is as-yet to be determined.
    Boundary Survey map: CHP Consultants campus

    posted in Data Treatments read more
  • Nathaniel

    Version 1.1.9 is an update that requires new firmware.
    See: Announcing firmware revision 1801 (requiring app upgrade to version 1.1.9)

    1.1.9 (Mar 10, 2018)

    • Add notifications for disconnect
    • Support for updated Firmware!

    Of additional note:
    1.1.7 (Dec 18, 2017)

    • Updated user experience
    • New datasets logic to show what's been synced to the cloud

    posted in Announcements read more
  • Nathaniel hardware has been upgraded with a new firmware, version 1801.
    For most users, this will be no problem, as many have already received the upgraded edition.

    To tell whether your hardware is compatible, look for the 1801 version in the bluetooth advertisement when connecting to the device.

    For other versions, contact for advice. In some cases, an over-the-air update may be possible; for others, an equipment exchange may be required, free of charge.

    For more information about the Ios app version 1.1.9, see the reply in the following post:
    The app is live in the App Store!

    posted in Announcements read more
  • Nathaniel

    Version 1.1.6 is live:

    • Disable screen sleep during Scaler count - as soon as you click on "Start", the screen sleep gets disabled. Once recording is done, screen sleep goes back to default
    • Scaler length (in seconds) is now in the summary view
    • New "Info" page with helpful links
    • Logout button is now on Info page
    • Former "Settings" page is now known as "Meter Info"

    posted in Announcements read more
  • Nathaniel

    Version 1.1 has been published, with updates to the user interface:

    • New first-time login flow (no forced meter/probe info)
    • New Sync prompt with one button (no more sync + sharing icon)
    • Last known scaler count stays on view
    • Prompt to enter meter info when connecting to new meter (in the future, we will create lookup table based on UUID of meter)
    • Overlay when no meter is connected

    posted in Announcements read more
  • Nathaniel

    0_1508436853916_Model 177 action shot.png

    This is a Ludlum Model 177 set up for personnel frisking.
    The is transmitting to the iPad, which also has a bluetooth keyboard for easier entry of badge numbers and other relevant data.
    Since the data can be synced to the cloud immediately, RSO's have a chance to audit any frisks immediately.

    posted in General Discussion read more

Looks like your connection to Forum was lost, please wait while we try to reconnect.