{"id":19863471,"url":"https://github.com/sandialabs/interspec","last_synced_at":"2025-04-04T19:04:23.004Z","repository":{"id":41376647,"uuid":"133306503","full_name":"sandialabs/InterSpec","owner":"sandialabs","description":"spectral radiation analysis software","archived":false,"fork":false,"pushed_at":"2025-03-27T23:46:23.000Z","size":188609,"stargazers_count":154,"open_issues_count":6,"forks_count":24,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-28T00:28:35.161Z","etag":null,"topics":["scr-2173","snl-applications","snl-data-analysis","snl-visualization"],"latest_commit_sha":null,"homepage":"https://sandialabs.github.io/InterSpec","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandialabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/imgs/dose_calculator.png","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-14T04:52:22.000Z","updated_at":"2025-03-25T21:10:19.000Z","dependencies_parsed_at":"2024-05-20T17:33:01.387Z","dependency_job_id":"21616743-0739-4281-9870-090a5c497886","html_url":"https://github.com/sandialabs/InterSpec","commit_stats":{"total_commits":1501,"total_committers":9,"mean_commits":"166.77777777777777","dds":0.083944037308461,"last_synced_commit":"03d063683bc26c9379f8bdd2db426e5a34b54dbe"},"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2FInterSpec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2FInterSpec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2FInterSpec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandialabs%2FInterSpec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandialabs","download_url":"https://codeload.github.com/sandialabs/InterSpec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247234920,"owners_count":20905854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["scr-2173","snl-applications","snl-data-analysis","snl-visualization"],"created_at":"2024-11-12T15:14:46.512Z","updated_at":"2025-04-04T19:04:22.962Z","avatar_url":"https://github.com/sandialabs.png","language":"C++","readme":"[![Tests](https://github.com/sandialabs/InterSpec/actions/workflows/test.yml/badge.svg)](https://github.com/sandialabs/InterSpec/actions/workflows/test.yml)\n[![App Build](https://github.com/sandialabs/InterSpec/actions/workflows/build_app.yml/badge.svg)](https://github.com/sandialabs/InterSpec/actions/workflows/build_app.yml)\n\n# InterSpec\nInterSpec is a native or web application to assist in analyzing spectral nuclear radiation data, using a peak-based methodology.\nCommon uses include identifying nuclides present, determining source activity, shielding amounts, source age, or other nuclear reactions present.\nInterSpec also provides a number of other tools useful for analyzing radiation data including spectral file format converting,\ndose rate calculations, interactive nuclide decay and reference information, gamma cross section calculations, and more.\nInterSpec can open data files from most common spectral radiation detectors (e.g., most NaI, HPGe, LaBr, \nCLYC, CsI, etc. based systems) and assist in their analysis.\nInterSpec can also be built as a stand-alone (e.g., no Internet connection necessary) native app (using either OS provided WebView, or [Electron](https://github.com/electron/electron) for display) for Windows, Linux, macOS, iOS, or Android.\n\n# Getting Started\nFor executable installation:\n- Windows, Linux, macOS: download from the [releases tab](https://github.com/sandialabs/interspec/releases)\n- iPhone/iPad: [iOS App Store](https://itunes.apple.com/us/app/interspec-radiation-analysis/id1447080767?ls=1\u0026mt=8)\n- Android phones and tablets: [Android Google Play Store](https://play.google.com/store/apps/details?id=gov.sandia.interspec)\n- From source: see the [Building From Source](https://github.com/sandialabs/InterSpec#building-from-source).\n\nA brief getting started guide can be found in [brief_ana_overview_InterSpec_Oct2018.pdf](https://sandialabs.github.io/InterSpec/tutorials/brief_analysis_intro/brief_ana_overview_InterSpec_Oct2018.pdf); a more comprehensive tutorial is planned for the future.\n\nRelease notes, tutorials, and example problems can be found at [https://sandialabs.github.io/InterSpec/releases/](https://sandialabs.github.io/InterSpec/releases/).\n\n## Some Screen Shots\n![W187 peak fit example](/support/imgs/overview_W187.png?raw=true \"Easy to use user interface.\")\n\nInteractions with the chart are fast and natural.  Peak fitting is as easy as double clicking where \nyou want a peak fit, or there is an automated option that is especially useful for HPGe detectors.\n\n![Activity Fit Tool](/support/imgs/th232_activity_fit.png?raw=true \"Advanced fitting for nuclide activity, age, and shielding\")\n\nCan fit for activities and shielding for multiple nuclides at once, taking into account interferences, ages, self-attenuation, etc.  A large shielding database is included, or generic shielding can be used.  \n\n![Ho166m and Eu152 peak fit example](/support/imgs/ho166m_eu152_ex.png?raw=true \"Advanced peak fitting\")\n\nEasily fit overlapping peaks.  Photopeak sources are assigned to peaks for easy activity/shielding fitting or energy calibration.\n\n\n![Nuclear decay chart](/support/imgs/nuc_decay_chart_example.png?raw=true \"Nuclear decay calculations\")\n\nIncludes an extensive database of nuclides.  Nuclide aging is performed on-the-fly throughout the app to allow adjusting or fitting for ages.\n\n\n![Nuclear decay chain](/support/imgs/nuc_decay_chain_example.png?raw=true \"Decay chain visualization/reference\")\nLots of useful tools.\n\n\n![Nuclide identification by energy](/support/imgs/nuclide_id_help.png?raw=true \"Nuclide identification by energy\")\n\nSearching for nuclides by energy, by default, takes into acount peak amplitudes and other peaks in the spectrum (even if you havent fit for them)\nto order results in an intelligent way.\n\n\n![Dose calculation example](/support/imgs/dose_calculator.png?raw=true \"Dose calculator\")\n\nYou can go from source activity to dose, or from measured dose to source activity, or shielding amount.  \n\n\n## Building from source\n\nIf you would like to build the app, some instructions are below.\n\nIf you are developer of radiation analysis software, there is, in particular some code that \nmay be useful for you:\n1. [sandia_decay](https://github.com/sandialabs/SandiaDecay): This small library reads in [sandia.decay.xml](https://github.com/sandialabs/SandiaDecay/tree/master/data/sandia.decay.xml) and allows you to retrieve the half-lives, xrays, gammas, alpha, betas, etc given off by any certain nuclide, or you can easily decay nuclides and find activities of the decay chain nuclides, the particles that will be given off at any time, and more.  An emphasis is placed on easy to use, but computationally efficient code.\n2. [SpecUtils](https://github.com/sandialabs/SpecUtils): If you have to read in spectral files, including [N42](https://www.nist.gov/programs-projects/ansiieee-n4242-standard), [PCF](http://prod.sandia.gov/techlib/access-control.cgi/2017/179107.pdf), SPC, DAT, CHN, etc., this library may do what you want.  It decodes many file format variants, and saves to about a dozen different formats.  This library can be called from c++, Python, or Java, or if you want a very simple gui to do this, or a command line application, check out [cambio](https://github.com/sandialabs/cambio/) (which is powered by this library).\n\n\n### Prerequisites\nAt a minimum, you will need a C++14 compiler, and [cmake](https://cmake.org/).\n\nThen to build, you can choose one of two methods to build the code:\n1. Use [cmake](https://cmake.org/) to fetch and build the prerequisites for you, by specifying the `InterSpec_FETCH_DEPENDENCIES` CMake option to `ON`.  This option requires having [git](https://git-scm.com) installed, but is generally the easier of the two options.\n2. Build the prerequisites yourself.  This option is faster if you plan to rebuild the code many times, as CMake will have less libraries to deal with internally,.  You will need to build the following libraries from source (see the instructions in the [patches](/target/patches/) directory):\n      * [Wt](https://www.webtoolkit.eu/wt) version 3.7.1.  Some patches are included in the [patches](https://github.com/sandialabs/InterSpec/tree/master/target/patches/) directory.\n      * [boost](https://www.boost.org/) version 1.78 is\n      * The macOS app also requires [libharu](https://github.com/libharu/libharu), and [libpng](http://www.libpng.org/pub/png/libpng.html).\n\n\nIncluded in this repository are some additional C++ libraries that will be built as part of building InterSpecs code.  \nThese libraries include\n[Cuba](http://www.feynarts.de/cuba), \n[Minuit2](https://github.com/root-project/root/tree/master/math/minuit2), \n[muparserx](https://github.com/beltoforion/muparserx), [QR Code generator library](https://www.nayuki.io/page/qr-code-generator-library), [pugixml](https://pugixml.org)\nand [rapidxml](http://rapidxml.sourceforge.net/), which are in the\n[external_libs](https://github.com/sandialabs/interspec/tree/master/external_libs) directory, while \nthe [js](https://github.com/sandialabs/interspec/tree/master/js) directory contains some ECMAScript libraries, including\n[jQuery](https://jquery.org),\n[qTip2](https://github.com/qTip2/qTip2), and\n[D3](https://d3js.org).\n\nAdditionally for the Windows or Electron application build, you will need [npm](http://npmjs.com) installed to create the application package (see the [electron](/target/electron/) directory for build instructions).\n\n### Building\n\nAfter compiling boost and Wt from source, clone the InterSpec repository, and from the terminal, run cmake:\n\n```\ngit clone --recursive https://github.com/sandialabs/interspec/\ncd interspec\nmkdir build\ncd build\ncmake ..\n```\n\nIf you are on Windows, or prefer a GUI, running the CMake for building InterSpec should be like\nmost other CMake project; you will probably have to fill in paths to boost and Wt manually.  Or if\nyou have boost or Wt in a non-standard location, you can use a command like:\n\n```\ncmake -DCMAKE_PREFIX_PATH=/path/to/prefix ..\n```\nor if boost and Wt are in different directories:\n```\ncmake -generator \"Visual Studio 15 2017 Win64\" \\\n      -DBOOST_ROOT=/path/to/boost \\\n      -DWt_INCLUDE_DIR=/path/to/wt/include \\\n      -DCMAKE_MSVC_RUNTIME_LIBRARY=\"MultiThreaded$\u003c$\u003cCONFIG:Debug\u003e:Debug\u003e\" \\\n      -DBoost_USE_STATIC_LIBS=OFF \\\n      -DBoost_USE_STATIC_RUNTIME=ON \\\n      ..\n```\n\nAnd then make:\n```\nmake -j8\n# or\ncmake --build . --config Release\n```\n\nIf all goes well, InterSpec default to building an executable that when ran from the command line, starts a local web server, you can access then access from your browser.  To run InterSpec, use a command like:\n```\n./bin/InterSpec.exe --docroot . --http-address 127.0.0.1 --http-port 8080 -c ./data/config/wt_config_localweb.xml\n```\nand then point your browser to [http://localhost:8080](http://localhost:8080).\n\n\nIf you would like build as a native-ish app, see the *BUILD_AS_OSX_APP*, or *BUILD_AS_ELECTRON_APP* CMake options, as well as the [electron](/target/electron/) directory for the latter.\nFor building as a WebApp behind something like nginx or apache, see *BUILD_FOR_WEB_DEPLOYMENT*, but please note that InterSpec is *not* developed for general internet deployments, so there is likely many issues you would need to consider or address before exposing to untrusted users.\nThere are also a number of CMake options available to control which features get included in InterSpec.\n\n\nBuilding for iOS and Android are both possible (see the [target](https://github.com/sandialabs/interspec/tree/master/target) directory), and these instructions will be updated in the future.\n\n## Authors\nEthan Chan, **William Johnson**, David Ka-Ming Lee, Christian Morte, with\nextensive additional support provided by Noel Nachtigal and Edward Walsh.\n\n## License\nThis project is licensed under the LGPL v2.1 License - see the [LICENSE.md](LICENSE.md) file for details\n\n## Copyright\nCopyright 2018 National Technology \u0026 Engineering Solutions of Sandia, LLC (NTESS).\nUnder the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.\n\n ## Disclaimer\n```\nDISCLAIMER OF LIABILITY NOTICE:\nThe United States Government shall not be liable or responsible for any maintenance,\nupdating or for correction of any errors in the SOFTWARE or subsequent approved version\nreleases.\n\n\nTHE INTERSPEC (SOFTWARE) AND ANY OF ITS SUBSEQUENT VERSION\nRELEASES, SOFTWARE IS PROVIDED \"AS IS\" WITHOUT ANY WARRANTY OF\nANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT\nNOT LIMITED TO, ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO\nSPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY\nWARRANTY THAT THE SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY\nTHAT THE DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE\nSOFTWARE. IN NO EVENT SHALL THE UNITED STATES GOVERNMENT OR ITS\nCONTRACTORS OR SUBCONTRACTORS BE LIABLE FOR ANY DAMAGES,\nINCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR\nCONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY\nWAY CONNECTED WITH THE SOFTWARE OR ANY OTHER PROVIDED\nDOCUMENTATION, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT,\nTORT, OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY\nPERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS\nSUSTAINED FROM, OR AROSE OUT OF THE RESULT OF, OR USE OF, THE\nSOFTWARE OR ANY PROVIDED DOCUMENTATION. THE UNITED STATES\nGOVERNMENT DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING\nTHIRD PARTY SOFTWARE, IF PRESENT IN THE SOFTWARE, AND DISTRIBUTES\nIT \"AS IS.\"\n```\n\n ## Acknowledgement\nThis InterSpec Software was developed with funds from the Science and Technology Directorate of the Department of Homeland Security.\n\n ## Privacy Policy\nInterSpec apps built by Sandia National Laboratories, do not collect any personal information.\n\n\nInterSpec locally stores preferences you may change in the app as well as spectra you load, explicitly saved states, and the app state when it is exited. This information does not leave your device, and can be deleted by removing the application data folder in the operating system's standard location for the app.\n\n\nThe only time external network communications is used by InterSpec is when the Map Tool is used, in which case it is only used to request map tiles from https://arcgisonline.com.  Users will be warned before doing this, and there is an option to use your own arcgisonline.com account to request the the map tiles under (see the in-app Map Tools help for more information).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandialabs%2Finterspec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandialabs%2Finterspec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandialabs%2Finterspec/lists"}