Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

treetopper

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

treetopper

Python module for calculating Timber data from tree species of the west coast

  • 1.1.6
  • PyPI
  • Socket score

Maintainers
1

treetopper

Python module for calculating Stand data using tree species of the west coast.

DOCUMENTATION https://zacharybeebe.github.io/treetopper/

pip install treetopper

If you would like to download a blank, formatted inventory sheet in .csv or .xlsx...

In the terminal:

    python -m treetopper.blank_sheet

And follow the prompts

To go through example workflows with treetopper, this can be done in with the stand module.

There are 6 different workflows that show examples of how treetopper works, these workflows will show console reports, create csv/xlsx files of stand plot data, create pdf reports, and/or create FVS-formatted databases

The workflow number 1 through 6 is the only argument when calling the stand module.

In the terminal:

    python -m treetopper.stand [workflow_number]

The summary of the workflow and the outputs will print at the bottom of the terminal

The species available for calculation are below and must have the correct species code...

    'DF': 'DOUGLAS-FIR'
    'WH': 'WESTERN HEMLOCK'
    'RC': 'WESTERN REDCEDAR'
    'SS': 'SITKA SPRUCE'
    'ES': 'ENGLEMANN SPRUCE'
    'SF': 'SILVER FIR'
    'GF': 'GRAND FIR'
    'NF': 'NOBLE FIR'
    'WL': 'WESTERN LARCH'
    'WP': 'WHITE PINE'
    'PP': 'PONDEROSA PINE'
    'LP': 'LODGEPOLE PINE'
    'JP': 'JEFFERY PINE'
    'SP': 'SUGAR PINE'
    'WF': 'WHITE FIR'
    'RF': 'RED FIR'
    'RW': 'COASTAL REDWOOD'
    'IC': 'INSENCE CEDAR'
    'RA': 'RED ALDER'
    'BM': 'BIGLEAF MAPLE'
    'CW': 'BLACK COTTONWOOD'
    'AS': 'QUAKING ASPEN'

An example of how to get started is...

from treetopper import *

"""
This workflow will create a quick cruise stand from manually entered plot/tree data
and then will display a console report, create a pdf report and create a csv file
of the stand's plot data in the current working directory.

Using the ThinTPA class, we will run a thinning scenario on the stand to a target density
of 80 Trees per Acre considering all species and diameter ranges. Then it will display a
console report of the thinning and create a pdf report.

Finally we will use the FVS class to create a SQLite database that is formatted for use
in FVS. FVS is the US Forest Service's "Forest Vegetation Simulator" software.
"""

## Instantiating the Stand class
stand = Stand('WF1', -20)
# Stand(Stand Name, Plot Factor, [optional] Acres, Inventory Date)

plot_factor = stand.plot_factor

## Entering Tree Data for a Quick Cruise, using the TimberQuick class
tree_data = [[TimberQuick('DF', 29.5, 119, plot_factor), TimberQuick('WH', 18.9, 102, plot_factor),
              TimberQuick('WH', 20.2, 101, plot_factor), TimberQuick('WH', 19.9, 100, plot_factor),
              TimberQuick('DF', 20.6, 112, plot_factor)],
             [TimberQuick('DF', 25.0, 117, plot_factor), TimberQuick('DF', 14.3, 105, plot_factor),
              TimberQuick('DF', 20.4, 119, plot_factor), TimberQuick('DF', 16.0, 108, plot_factor),
              TimberQuick('RC', 20.2, 124, plot_factor), TimberQuick('RC', 19.5, 116, plot_factor),
              TimberQuick('RC', 23.4, 121, plot_factor), TimberQuick('DF', 17.8, 116, plot_factor),
              TimberQuick('DF', 22.3, 125, plot_factor)]
             ]
#TimberQuick(Species Code, DBH, Total Height, Plot Factor, [optional] Preferred Log Length, Minimum Log Length)

## Adding Tree data to Plot class and adding the Plot class to the Stand class
for trees in tree_data:
    plot = Plot()
    for tree in trees:
        plot.add_tree(tree)
    stand.add_plot(plot)

## Generating Stand class data reports
print(stand.console_report())
stand.pdf_report('example_stand_report')
# stand.pdf_report(Filename, [optional] Directory)
stand.table_to_csv('example_csv_export.csv')
# stand.table_to_csv(Filename, [optional] Directory)


## Running a thinning scenario on the Stand class, using the ThinTPA class
thin80tpa = ThinTPA(stand, 80)
# ThinTPA(Stand Class, Target Density, [optional] Species to Cut (list), Minimum DBH to Cut, Maximum DBH to Cut)


## Generating Thin class report
print(thin80tpa.console_report())
thin80tpa.pdf_report('example_thin_report')
# thin80tpa.pdf_report(Filename, [optional] Directory)


## Creating a FVS-formatted database from the Stand class data
fvs = FVS()
fvs.set_stand(stand, 'PN', 612, 6, 45, 'DF', 110)
# fvs.set_stand(Stand Class, Variant, Forest Number, Region Number, Stand Age, Site Class Species, Site Index, **kwargs)
fvs.sqlite_db('sqlite_db')
# fvs.sqlite_db(Filename, [optional] Directory, Blank Database (bool))

	

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc