Module Import alias identifier Import alias identifier Import alias Assign NameStore Call AttributeLoad NameLoad attr NameLoad ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr ListLoad Num Assign AttributeStore NameLoad attr ListLoad Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Num Assign AttributeStore NameLoad attr ListLoad Str Str Str Str Assign AttributeStore NameLoad attr ListLoad NameLoad NameLoad NameLoad NameLoad Assign AttributeStore NameLoad attr Dict Str Str Str Str Str Str Dict Str Num Dict Str Num Dict Str Num Dict Str Num Dict Str Str Num Num Dict Str Str Num Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Dict Str Str Str Str Num Num Num Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr ListLoad Str Str Str Assign AttributeStore NameLoad attr Dict Str Str Str Str ListLoad Num Num Num Num ListLoad Num Num Num Num ListLoad Num Num Num Num ListLoad Num Num Num Num Assign AttributeStore NameLoad attr ListLoad Num Num Num AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Dict Str Str Str Num Num Num Assign AttributeStore NameLoad attr Dict Str Str Str Num Num Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr ListComp SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Dict Assert CompareEq Call NameLoad AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr For TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call AttributeLoad NameLoad attr ListComp Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr NameLoad Num comprehension NameStore AttributeLoad NameLoad attr AugAssignDiv SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call AttributeLoad SubscriptLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Index AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr ListComp SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr TupleLoad Num Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assert CompareEq Call NameLoad SubscriptLoad NameLoad Index CompareGt NameLoad Num Num Assert CompareEq Call NameLoad SubscriptLoad NameLoad Index CompareLtE NameLoad Num Num For TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body Assert Call NameLoad NameLoad NameLoad For TupleStore NameStore NameStore Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr body Assert Call NameLoad NameLoad NameLoad Assert Call NameLoad NameLoad NameLoad For TupleStore NameStore NameStore Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr body Assert Call NameLoad NameLoad NameLoad Assert Call NameLoad NameLoad NameLoad For TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body Assert Call NameLoad NameLoad NameLoad Assert CompareIn NameLoad AttributeLoad NameLoad attr Assert CompareLtELt Num NameLoad Num For TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body Assert Call NameLoad NameLoad NameLoad Assert CompareIn NameLoad AttributeLoad NameLoad attr Assert CompareLtELtE Num NameLoad Num For TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body Assert Call NameLoad NameLoad NameLoad Assert CompareIn NameLoad AttributeLoad NameLoad attr Assert CompareLtELtE Num NameLoad Num For NameStore AttributeLoad NameLoad attr body Assert BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad If Call AttributeLoad NameLoad attr NameLoad body Continue Assert CompareLtELtE Num NameLoad Num For TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body Assert Call NameLoad NameLoad NameLoad Assert CompareIn NameLoad AttributeLoad NameLoad attr For NameStore NameLoad body Assert CompareLtLt Num NameLoad Num decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam defaults NameLoad body If CompareIs NameLoad NameLoad body Assign NameStore Call NameLoad Expr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr Assign NameStore BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Assign SubscriptStore NameLoad Index Call AttributeLoad NameLoad attr NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Call AttributeLoad NameLoad attr Str NameLoad Assign SubscriptStore NameLoad Index Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr AttributeLoad NameLoad attr Return Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Assign NameStore Dict For NameStore NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad For NameStore AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str AttributeLoad NameLoad attr Assign NameStore BinOpMult Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Num Num Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad Num Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad TupleLoad Num Num If CompareEq NameLoad Str body AugAssignDiv NameStore BinOpAdd Num BinOpDiv BinOpMult Call AttributeLoad NameLoad attr BinOpMult NameLoad AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str NameLoad Assign NameStore BinOpDiv BinOpMult NameLoad Call AttributeLoad NameLoad attr BinOpMult NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore BinOpMult BinOpMult SubscriptLoad AttributeLoad NameLoad attr Index NameLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign SubscriptStore NameLoad Index Str NameLoad If CompareEq NameLoad Str body Assign SubscriptStore NameLoad Index Str BinOpMult NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore BinOpDiv NameLoad AttributeLoad NameLoad attr If CompareEq NameLoad Str body Assign SubscriptStore NameLoad Index Str BinOpMult NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore BinOpDiv BinOpAdd NameLoad BinOpMult NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad AttributeLoad NameLoad attr If CompareEq NameLoad Str body Assign NameStore BinOpDiv NameLoad BinOpSub AttributeLoad NameLoad attr BinOpMult NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign SubscriptStore NameLoad Index Str Num Assign SubscriptStore NameLoad Index CompareLt NameLoad Num AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index CompareGt NameLoad Num AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str BinOpDiv AttributeLoad NameLoad attr AttributeLoad NameLoad attr AugAssignDiv NameStore AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str Call AttributeLoad NameLoad attr NameLoad Assign SubscriptStore NameLoad Index Str BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str Call AttributeLoad NameLoad attr NameLoad NameLoad Assign SubscriptStore NameLoad Index Str BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str NameLoad Assign SubscriptStore NameLoad Index Str BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str BinOpMult BinOpDiv AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareEq NameLoad Str body Assign SubscriptStore SubscriptLoad NameLoad Index Str Index CompareGt AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareEq NameLoad Str body Assign SubscriptStore SubscriptLoad NameLoad Index Str Index CompareGt AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index TupleLoad NameLoad NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Return SubscriptLoad AttributeLoad NameLoad attr Index TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Return AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index TupleLoad NameLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Str Assign NameStore Call AttributeLoad NameLoad attr GeneratorExp Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad NameLoad comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareEq Call NameLoad NameLoad Num body Return Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr keyword Str keyword Str attr keyword Num attr Str Expr Call AttributeLoad NameLoad attr ListLoad Str keyword NameLoad keyword NameLoad Expr Call AttributeLoad NameLoad attr ListLoad Str keyword NameLoad keyword NameLoad Return Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index AttributeLoad NameLoad attr attr Num decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index TupleLoad NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr TupleLoad Num Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr TupleLoad Num Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr TupleLoad Num Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr TupleLoad Num Num Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign SubscriptStore NameLoad Index Str BinOpMult BinOpDiv AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareIn Str AttributeLoad NameLoad attr body Assert CompareIn Str AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str BinOpDiv BinOpDiv BinOpMult BinOpMult AttributeLoad NameLoad attr BinOpDiv AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Assign SubscriptStore NameLoad Index Str Call AttributeLoad SubscriptLoad NameLoad Index ListLoad Str Str Str attr keyword Num orelse Assign SubscriptStore NameLoad Index Str Call AttributeLoad SubscriptLoad NameLoad Index ListLoad Str Str attr keyword Num If NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad Call NameLoad AttributeLoad NameLoad attr keyword Num Assign SubscriptStore NameLoad Index CompareGt NameLoad BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr Num AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad Call NameLoad AttributeLoad NameLoad attr keyword Num Assign SubscriptStore NameLoad Index CompareGt NameLoad BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr Num AttributeLoad NameLoad attr Assign NameStore BinOpMult NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore BinOpMult NameLoad NameLoad Assign NameStore BinOpAdd NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore BinOpDiv BinOpMult BinOpMult BinOpMult NameLoad BinOpSub Num NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Assign NameStore BinOpSub NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Str Assign SubscriptStore NameLoad Index Call AttributeLoad NameLoad attr NameLoad UnaryOpUSub AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword Num FunctionDef arguments args NameParam NameParam defaults body Return Call AttributeLoad SubscriptLoad NameLoad Index TupleLoad NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr attr Str decorator_list Assign NameStore Call AttributeLoad NameLoad attr Dict Str Str Str Str Str Str Str Str Str Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad Call AttributeLoad SubscriptLoad NameLoad Index NameLoad attr BinOpDiv Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad NameLoad keyword AttributeLoad NameLoad attr If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore BinOpSub Num NameLoad Assign SubscriptStore NameLoad Index Str BinOpMult BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Assign SubscriptStore NameLoad Index Str BinOpMult BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad If NameLoad body Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr Str attr orelse Assign NameStore Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index CompareNotEq AttributeLoad NameLoad attr UnaryOpUSub AttributeLoad NameLoad attr attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Import alias Expr Call AttributeLoad NameLoad attr Str Import alias identifier Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr BinOpAdd BinOpAdd Str Call NameLoad NameLoad Str Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad For NameStore AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr BinOpAdd BinOpAdd Str Call NameLoad NameLoad Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Assign NameStore Num Assign NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword TupleLoad Num BinOpMult Num Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Str keyword Num For NameStore NameLoad body Assign NameStore NameLoad For NameStore AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad NameLoad Index TupleLoad NameLoad NameLoad If CompareIs NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index Str Assign NameStore SubscriptLoad NameLoad Index Str Delete SubscriptDel NameLoad Index Str If CompareIs NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr BinOpDiv Call NameLoad NameLoad Num Num NameLoad orelse Expr Call AttributeLoad NameLoad attr BinOpDiv Call NameLoad NameLoad Num Num NameLoad keyword NameLoad keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr BinOpMod Str NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr keyword Str keyword Str AugAssignAdd NameStore Num Expr Call AttributeLoad NameLoad attr Str keyword Num decorator_list decorator_list
N/A N/A numpy np N/A pandas pd N/A logging N/A logger N/A N/A logging getLogger __name__ SqFtProFormaConfig N/A object N/A N/A 
    This class encapsulates the configuration options for the square
    foot based pro forma.

    parcel_sizes : list
        A list of parcel sizes to test.  Interestingly, right now
        the parcel sizes cancel in this style of pro forma computation so
        you can set this to something reasonable for debugging purposes -
        e.g. [10000].  All sizes can be feet or meters as long as they are
        consistently used.
    fars : list
        A list of floor area ratios to use.  FAR is a multiple of
        the parcel size that is the total building bulk that is allowed by
        zoning on the site.  In this case, all of these ratios will be
        tested regardless of zoning and the zoning test will be performed
        later.
    uses : list
        A list of space uses to use within a building.  These are
        mixed into forms.  Generally speaking, you should only have uses
        for which you have an estimate (or observed) values for rents in
        the building.  By default, uses are retail, industrial, office,
        and residential.
    forms : dict
        A dictionary where keys are names for the form and values
        are also dictionaries where keys are uses and values are the
        proportion of that use used in this form.  The values of the
        dictionary should sum to 1.0.  For instance, a form called
        "residential" might have a dict of space allocations equal to
        {"residential": 1.0} while a form called "mixedresidential"
        might have a dictionary of space allocations equal to
        {"retail": .1, "residential" .9] which is 90% residential and
        10% retail.
    parking_rates : dict
        A dict of rates per thousand square feet where keys are the uses
        from the list specified in the attribute above.  The ratios
        are typically in the range 0.5 - 3.0 or similar.  So for
        instance, a key-value pair of "retail": 2.0 would be two parking
        spaces per 1,000 square feet of retail.  This is a per square
        foot pro forma, so the more typically parking ratio of spaces
        per residential unit must be converted to square feet for use in
        this pro forma.
    sqft_per_rate : float
        The number of square feet per unit for use in the
        parking_rates above.  By default this is set to 1,000 but can be
        overridden.
    parking_configs : list
        An expert parameter and is usually unchanged.  By default
        it is set to ['surface', 'deck', 'underground'] and very semantic
        differences in the computation are performed for each of these
        parking configurations.  Generally speaking it will break things
        to change this array, but an item can be removed if that parking
        configuration should not be tested.
    parking_sqft_d : dict
        A dictionary where keys are the three parking
        configurations listed above and values are square foot uses of
        parking spaces in that configuration.  This is to capture the
        fact that surface parking is usually more space intensive
        than deck or underground parking.
    parking_cost_d : dict
        The parking cost for each parking configuration.  Keys are the
        name of the three parking configurations listed above and values
        are dollars PER SQUARE FOOT for parking in that configuration.
        Used to capture the fact that underground and deck are far more
        expensive than surface parking.
    height_for_costs : list
        A list of "break points" as heights at which construction becomes
        more expensive.  Generally these are the heights at which
        construction materials change from wood, to concrete, to steel.
        Costs are also given as lists by use for each of these break
        points and are considered to be valid up to the break point.  A
        list would look something like [15, 55, 120, np.inf].
    costs : dict
        The keys are uses from the attribute above and the values are a
        list of floating point numbers of same length as the
        height_for_costs attribute.  A key-value pair of
        "residential": [160.0, 175.0, 200.0, 230.0] would say that the
        residential use if $160/sqft up to 15ft in total height for the
        building, $175/sqft up to 55ft, $200/sqft up to 120ft, and
        $230/sqft beyond.  A final value in the height_for_costs
        array of np.inf is typical.
    height_per_story : float
        The per-story height for the building used to turn an
        FAR into an actual height.
    max_retail_height : float
        The maximum height of retail buildings to consider.
    max_industrial_height : float
        The maximum height of industrial buildings to consider.
    profit_factor : float
        The ratio of profit a developer expects to make above the break
        even rent.  Should be greater than 1.0, e.g. a 10% profit would be
        a profit factor of 1.1.
    building_efficiency : float
        The efficiency of the building.  This turns total FAR into the
        amount of space which gets a square foot rent.  The entire building
        gets the cost of course.
    parcel_coverage : float
        The ratio of the building footprint to the parcel size.  Also used
        to turn an FAR into a height to cost properly.
    cap_rate : float
        The rate an investor is willing to pay for a cash flow per year.
        This means $1/year is equivalent to 1/cap_rate present dollars.
        This is a macroeconomic input that is widely available on the
        internet.

     __init__ N/A N/A self N/A N/A N/A N/A N/A self _reset_defaults N/A _reset_defaults N/A N/A self N/A N/A N/A N/A self parcel_sizes N/A 10000.0 N/A N/A self fars N/A 0.1 0.25 0.5 0.75 1.0 1.5 1.8 2.0 2.25 2.5 2.75 3.0 3.25 3.5 3.75 4.0 4.5 5.0 5.5 6.0 6.5 7.0 9.0 11.0 N/A N/A self uses N/A retail industrial office residential N/A N/A self residential_uses N/A False False False True N/A N/A self forms N/A retail industrial office residential mixedresidential mixedoffice N/A retail 1.0 N/A industrial 1.0 N/A office 1.0 N/A residential 1.0 N/A retail residential 0.1 0.9 N/A office residential 0.7 0.3 N/A N/A self profit_factor 1.1 N/A N/A self building_efficiency 0.7 N/A N/A self parcel_coverage 0.8 N/A N/A self cap_rate 0.05 N/A N/A self parking_rates N/A retail industrial office residential 2.0 0.6 1.0 1.0 N/A N/A self sqft_per_rate 1000.0 N/A N/A self parking_configs N/A surface deck underground N/A N/A self costs N/A retail industrial office residential N/A 160.0 175.0 200.0 230.0 N/A 140.0 175.0 200.0 230.0 N/A 160.0 175.0 200.0 230.0 N/A 170.0 190.0 210.0 240.0 N/A N/A self heights_for_costs N/A 15 55 120 N/A np inf N/A N/A self parking_sqft_d N/A surface deck underground 300.0 250.0 250.0 N/A N/A self parking_cost_d N/A surface deck underground 30 90 110 N/A N/A self height_per_story 12.0 N/A N/A self max_retail_height 2.0 N/A N/A self max_industrial_height 2.0 N/A _convert_types N/A N/A self N/A N/A N/A 
        convert lists and dictionaries that are useful for users to
        np vectors that are usable by machines

         N/A N/A self fars N/A N/A np array N/A self fars N/A N/A self parking_rates N/A N/A np array N/A N/A N/A self parking_rates N/A use N/A use N/A self uses N/A N/A self res_ratios N/A N/A N/A N/A len N/A self uses N/A len N/A self residential_uses N/A N/A k v N/A N/A N/A self forms iteritems N/A N/A N/A N/A self forms N/A k N/A N/A np array N/A N/A N/A N/A N/A self forms N/A k get use 0.0 N/A use N/A self uses N/A N/A N/A self forms N/A k N/A N/A N/A N/A self forms N/A k sum N/A N/A N/A self res_ratios N/A k N/A N/A N/A N/A N/A pd Series N/A N/A self forms N/A k N/A N/A self residential_uses sum N/A N/A self costs N/A N/A np transpose N/A N/A np array N/A N/A N/A self costs N/A use N/A use N/A self uses N/A tiled_parcel_sizes N/A N/A self N/A N/A N/A N/A N/A np reshape N/A N/A np repeat N/A self parcel_sizes N/A N/A self fars size N/A -1 1 N/A property check_is_reasonable N/A N/A self N/A N/A N/A fars N/A N/A pd Series N/A self fars N/A N/A N/A len N/A fars N/A N/A fars 20 0 N/A N/A N/A len N/A fars N/A N/A fars 0 0 N/A N/A k v N/A N/A N/A self forms iteritems N/A N/A N/A isinstance v dict N/A N/A k2 v2 N/A N/A N/A N/A self forms N/A k iteritems N/A N/A N/A isinstance k2 str N/A N/A isinstance v2 float N/A N/A k2 v2 N/A N/A N/A N/A self forms N/A k iteritems N/A N/A N/A isinstance k2 str N/A N/A isinstance v2 float N/A N/A k v N/A N/A N/A self parking_rates iteritems N/A N/A N/A isinstance k str N/A N/A k N/A self uses N/A N/A 0 v 5 N/A N/A k v N/A N/A N/A self parking_sqft_d iteritems N/A N/A N/A isinstance k str N/A N/A k N/A self parking_configs N/A N/A 50 v 1000 N/A N/A k v N/A N/A N/A self parking_sqft_d iteritems N/A N/A N/A isinstance k str N/A N/A k N/A self parking_cost_d N/A N/A 10 v 300 N/A v N/A self heights_for_costs N/A N/A N/A N/A isinstance v int N/A isinstance v float N/A N/A N/A np isinf v N/A N/A N/A N/A 0 v 1000 N/A N/A k v N/A N/A N/A self costs iteritems N/A N/A N/A isinstance k str N/A N/A k N/A self uses N/A i v N/A N/A N/A 10 i 1000 N/A N/A SqFtProForma N/A object N/A N/A 
    Initialize the square foot based pro forma.

    This pro forma has no representation of units - it does not
    differentiate between the rent attained by 1BR, 2BR, or 3BR and change
    the rents accordingly.  This is largely because it is difficult to get
    information on the unit mix in an existing building in order to compute
    its acquisition cost.  Thus rents and costs per sqft are used for new
    and current buildings which assumes there is a constant return on
    increasing and decreasing unit sizes, an extremely useful simplifying
    assumption above the project scale (i.e. city of regional scale)

    Parameters
    ----------
    config : `SqFtProFormaConfig`
        The configuration object which should be an
        instance of `SqFtProFormaConfig`.  The configuration options for this
        pro forma are documented on the configuration object.

     __init__ N/A N/A self config N/A None N/A N/A N/A config None N/A N/A config N/A SqFtProFormaConfig N/A N/A N/A config check_is_reasonable N/A N/A self config config N/A N/A N/A N/A self config _convert_types N/A N/A N/A self _generate_lookup N/A _building_cost N/A N/A self use_mix stories N/A N/A N/A 
        Generate building cost for a set of buildings

        Parameters
        ----------
        use_mix : array
            The mix of uses for this form
        stories : series
            A Pandas Series of stories

        Returns
        -------
        array
            The cost per sqft for this unit mix and height.

         N/A c N/A self config N/A heights N/A stories N/A c height_per_story N/A costs N/A N/A np searchsorted N/A c heights_for_costs heights N/A N/A costs N/A N/A N/A np isnan heights 0 N/A costs N/A N/A np dot N/A N/A np squeeze N/A N/A c costs N/A N/A N/A costs astype int32 use_mix N/A N/A costs N/A N/A N/A N/A N/A np isnan stories flatten N/A np nan N/A N/A N/A costs flatten N/A _generate_lookup N/A N/A self N/A N/A N/A 
        Run the developer model on all possible inputs specified in the
        configuration object - not generally called by the user.  This part
        computes the final cost per sqft of the building to construct and
        then turns it into the yearly rent necessary to make break even on
        that cost.

         N/A c N/A self config N/A keys N/A N/A N/A c forms keys N/A N/A N/A keys sort N/A df_d N/A N/A name keys N/A N/A uses_distrib N/A N/A c forms N/A name N/A parking_config N/A c parking_configs N/A N/A df N/A N/A pd DataFrame index N/A c fars N/A N/A df N/A far N/A c fars N/A N/A df N/A pclsz N/A c tiled_parcel_sizes N/A building_bulk N/A N/A N/A np reshape N/A c parcel_sizes N/A -1 1 N/A N/A np reshape N/A c fars N/A 1 -1 N/A building_bulk N/A N/A np reshape building_bulk N/A -1 1 N/A N/A parking_config deck N/A N/A building_bulk N/A 1.0 N/A N/A N/A N/A np sum N/A uses_distrib N/A c parking_rates N/A N/A c parking_sqft_d N/A parking_config N/A c sqft_per_rate N/A N/A df N/A building_sqft building_bulk N/A parkingstalls N/A N/A building_bulk N/A N/A np sum N/A uses_distrib N/A c parking_rates N/A c sqft_per_rate N/A parking_cost N/A N/A N/A N/A c parking_cost_d N/A parking_config parkingstalls N/A N/A c parking_sqft_d N/A parking_config N/A N/A df N/A spaces parkingstalls N/A N/A parking_config underground N/A N/A N/A df N/A park_sqft N/A parkingstalls N/A N/A c parking_sqft_d N/A parking_config N/A stories N/A building_bulk N/A c tiled_parcel_sizes N/A N/A parking_config deck N/A N/A N/A df N/A park_sqft N/A parkingstalls N/A N/A c parking_sqft_d N/A parking_config N/A stories N/A N/A building_bulk N/A parkingstalls N/A N/A c parking_sqft_d N/A parking_config N/A c tiled_parcel_sizes N/A N/A parking_config surface N/A N/A stories N/A building_bulk N/A N/A c tiled_parcel_sizes N/A parkingstalls N/A N/A c parking_sqft_d N/A parking_config N/A N/A df N/A park_sqft 0 N/A N/A stories N/A N/A stories 0.0 N/A np nan N/A N/A stories N/A N/A stories 5.0 N/A np nan N/A N/A df N/A total_built_sqft N/A N/A df building_sqft N/A df park_sqft N/A N/A df N/A parking_sqft_ratio N/A N/A df park_sqft N/A df total_built_sqft N/A stories N/A c parcel_coverage N/A N/A df N/A stories N/A N/A np ceil stories N/A N/A df N/A height N/A N/A df stories N/A c height_per_story N/A N/A df N/A build_cost_sqft N/A N/A self _building_cost uses_distrib stories N/A N/A df N/A build_cost N/A N/A df build_cost_sqft N/A df building_sqft N/A N/A df N/A park_cost parking_cost N/A N/A df N/A cost N/A N/A df build_cost N/A df park_cost N/A N/A df N/A ave_cost_sqft N/A N/A N/A df cost N/A df total_built_sqft N/A c profit_factor N/A N/A name retail N/A N/A N/A N/A df N/A ave_cost_sqft N/A N/A N/A c fars N/A c max_retail_height N/A np nan N/A N/A name industrial N/A N/A N/A N/A df N/A ave_cost_sqft N/A N/A N/A c fars N/A c max_industrial_height N/A np nan N/A N/A df_d N/A N/A name parking_config df N/A N/A self dev_d df_d N/A get_debug_info N/A N/A self form parking_config N/A N/A N/A 
        Get the debug info after running the pro forma for a given form and parking
        configuration

        Parameters
        ----------
        form : string
            The form to get debug info for
        parking_config : string
            The parking configuration to get debug info for

        Returns
        -------
        debug_info : dataframe
            A dataframe where the index is the far with many columns
            representing intermediate steps in the pro forma computation.
            Additional documentation will be added at a later date, although
            many of the columns should be fairly self-expanatory.

         N/A N/A N/A self dev_d N/A N/A form parking_config N/A get_ave_cost_sqft N/A N/A self form parking_config N/A N/A N/A 
        Get the average cost per sqft for the pro forma for a given form
        Parameters
        ----------
        form : string
            Get a series representing the average cost per sqft for each form in
            the config
        parking_config : string
            The parking configuration to get debug info for
        Returns
        -------
        cost : series
            A series where the index is the far and the values are the average
            cost per sqft at which the building is "break even" given the
            configuration parameters that were passed at run time.
         N/A N/A N/A N/A self dev_d N/A N/A form parking_config ave_cost_sqft N/A lookup N/A N/A self form df only_built pass_through N/A True None N/A N/A 
        This function does the developer model lookups for all the actual input data.

        Parameters
        ----------
        form : string
            One of the forms specified in the configuration file
        df: dataframe
            Pass in a single data frame which is indexed by parcel_id and has the
            following columns
        only_built : bool
            Whether to return only those buildings that are profitable and allowed
            by zoning, or whether to return as much information as possible, even if
            unlikely to be built (can be used when development might be subsidized
            or when debugging)
        pass_through : list of strings
            List of field names to take from the input parcel frame and pass
            to the output feasibility frame - is usually used for debugging
            purposes - these fields will be passed all the way through
            developer

        Input Dataframe Columns
        rent : dataframe
            A set of columns, one for each of the uses passed in the configuration.
            Values are yearly rents for that use.  Typical column names would be
            "residential", "retail", "industrial" and "office"
        land_cost : series
            A series representing the CURRENT yearly rent for each parcel.  Used to
            compute acquisition costs for the parcel.
        parcel_size : series
            A series representing the parcel size for each parcel.
        max_far : series
            A series representing the maximum far allowed by zoning.  Buildings
            will not be built above these fars.
        max_height : series
            A series representing the maxmium height allowed by zoning.  Buildings
            will not be built above these heights.  Will pick between the min of
            the far and height, will ignore on of them if one is nan, but will not
            build if both are nan.
        max_dua : series, optional
            A series representing the maximum dwelling units per acre allowed by
            zoning.  If max_dua is passed, the average unit size should be passed
            below to translate from dua to floor space.
        ave_unit_size : series, optional
            This is required if max_dua is passed above, otherwise it is optional.
            This is the same as the parameter to Developer.pick() (it should be the
            same series).

        Returns
        -------
        index : Series, int
            parcel identifiers
        building_sqft : Series, float
            The number of square feet for the building to build.  Keep in mind
            this includes parking and common space.  Will need a helpful function
            to convert from gross square feet to actual usable square feet in
            residential units.
        building_cost : Series, float
            The cost of constructing the building as given by the
            ave_cost_per_sqft from the cost model (for this FAR) and the number
            of square feet.
        total_cost : Series, float
            The cost of constructing the building plus the cost of acquisition of
            the current parcel/building.
        building_revenue : Series, float
            The NPV of the revenue for the building to be built, which is the
            number of square feet times the yearly rent divided by the cap
            rate (with a few adjustment factors including building efficiency).
        max_profit_far : Series, float
            The FAR of the maximum profit building (constrained by the max_far and
            max_height from the input dataframe).
        max_profit :
            The profit for the maximum profit building (constrained by the max_far
            and max_height from the input dataframe).

         N/A df N/A N/A pd concat N/A N/A N/A self _lookup_parking_cfg form parking_config df only_built pass_through N/A parking_config N/A N/A self config parking_configs N/A N/A N/A len df 0 N/A N/A N/A N/A pd DataFrame N/A max_profit_ind N/A N/A N/A N/A N/A N/A df pivot columns parking_config values max_profit idxmax axis 1 to_frame parking_config N/A N/A N/A df set_index N/A parking_config append True inplace True N/A N/A N/A max_profit_ind set_index N/A parking_config append True inplace True N/A N/A N/A N/A N/A df loc N/A N/A max_profit_ind index reset_index 1 N/A _lookup_parking_cfg N/A N/A self form parking_config df only_built pass_through N/A True None N/A N/A dev_info N/A N/A self dev_d N/A N/A form parking_config N/A cost_sqft_col N/A N/A np reshape N/A N/A dev_info ave_cost_sqft values N/A -1 1 N/A cost_sqft_index_col N/A N/A np reshape N/A N/A dev_info index values N/A -1 1 N/A parking_sqft_ratio N/A N/A np reshape N/A N/A dev_info parking_sqft_ratio values N/A -1 1 N/A heights N/A N/A np reshape N/A N/A dev_info height values N/A -1 1 N/A df N/A N/A df copy N/A c N/A self config N/A N/A df N/A weighted_rent N/A N/A np dot N/A df N/A N/A c uses N/A N/A c forms N/A form N/A N/A df N/A max_far_from_heights N/A N/A N/A df max_height N/A c height_per_story N/A c parcel_coverage N/A N/A max_dua N/A df columns N/A N/A N/A ave_unit_size N/A df columns N/A N/A df N/A max_far_from_dua N/A N/A N/A N/A N/A df max_dua N/A N/A df parcel_size 43560 N/A df ave_unit_size N/A N/A self config building_efficiency N/A df parcel_size N/A N/A df N/A min_max_fars N/A N/A N/A df N/A N/A max_far_from_heights max_far max_far_from_dua min axis 1 N/A N/A N/A df N/A min_max_fars N/A N/A N/A df N/A N/A max_far_from_heights max_far min axis 1 N/A only_built N/A N/A df N/A N/A df query min_max_fars > 0 and parcel_size > 0 N/A fars N/A N/A np repeat cost_sqft_index_col N/A len N/A df index axis 1 N/A N/A fars N/A N/A fars N/A N/A N/A df min_max_fars values 0.01 N/A np nan N/A heights N/A N/A np repeat heights N/A len N/A df index axis 1 N/A N/A fars N/A N/A heights N/A N/A N/A df max_height values 0.01 N/A np nan N/A building_bulks N/A fars N/A N/A df parcel_size values N/A building_costs N/A building_bulks cost_sqft_col N/A total_costs N/A building_costs N/A N/A df land_cost values N/A building_revenue N/A N/A N/A N/A building_bulks N/A 1 parking_sqft_ratio N/A c building_efficiency N/A N/A df weighted_rent values N/A c cap_rate N/A profit N/A building_revenue total_costs N/A profit N/A N/A profit astype float N/A N/A profit N/A N/A N/A np isnan profit N/A N/A np inf N/A maxprofitind N/A N/A np argmax profit axis 0 twod_get N/A N/A indexes arr N/A N/A N/A N/A N/A N/A arr N/A N/A indexes N/A N/A np arange N/A indexes size astype float N/A N/A outdf N/A N/A pd DataFrame N/A building_sqft building_cost parking_ratio stories total_cost building_revenue max_profit_far max_profit parking_config N/A twod_get maxprofitind building_bulks N/A twod_get maxprofitind building_costs N/A N/A N/A parking_sqft_ratio N/A maxprofitind flatten N/A N/A twod_get maxprofitind heights N/A c height_per_story N/A twod_get maxprofitind total_costs N/A twod_get maxprofitind building_revenue N/A twod_get maxprofitind fars N/A twod_get maxprofitind profit parking_config index N/A df index N/A pass_through N/A N/A N/A outdf N/A pass_through N/A df N/A pass_through N/A resratio N/A N/A c res_ratios N/A form N/A nonresratio N/A 1.0 resratio N/A N/A outdf N/A residential_sqft N/A N/A N/A outdf building_sqft N/A c building_efficiency resratio N/A N/A outdf N/A non_residential_sqft N/A N/A N/A outdf building_sqft N/A c building_efficiency nonresratio N/A only_built N/A N/A outdf N/A N/A N/A N/A outdf query max_profit > 0 copy N/A N/A outdf N/A N/A N/A N/A outdf loc N/A N/A N/A outdf max_profit N/A N/A np inf copy N/A outdf N/A _debug_output N/A N/A self N/A N/A N/A 
        this code creates the debugging plots to understand
        the behavior of the hypothetical building model

         N/A matplotlib N/A N/A N/A matplotlib use Agg N/A matplotlib.pyplot plt N/A c N/A self config N/A df_d N/A self dev_d N/A keys N/A N/A df_d keys N/A N/A N/A keys sort N/A key keys N/A N/A N/A N/A logger debug N/A N/A N/A str key N/A N/A N/A logger debug N/A df_d N/A key N/A form N/A N/A self config forms N/A N/A N/A N/A logger debug N/A N/A N/A str key N/A N/A N/A logger debug N/A N/A self get_ave_cost_sqft form surface N/A keys N/A N/A N/A c forms keys N/A N/A N/A keys sort N/A cnt 1 N/A share None N/A fig N/A N/A plt figure figsize N/A 12 N/A 3 N/A len keys N/A N/A N/A fig suptitle Profitable rents by use fontsize 40 N/A name keys N/A N/A sumdf None N/A parking_config N/A c parking_configs N/A N/A df N/A df_d N/A N/A name parking_config N/A N/A sumdf None N/A N/A sumdf N/A N/A pd DataFrame N/A df N/A far N/A N/A sumdf N/A parking_config N/A df N/A ave_cost_sqft N/A far N/A sumdf N/A far N/A N/A sumdf N/A far N/A N/A share None N/A N/A share N/A N/A plt subplot N/A N/A len keys 2 2 cnt N/A N/A N/A N/A plt subplot N/A N/A len keys 2 2 cnt sharex share sharey share N/A handles N/A N/A plt plot far sumdf N/A N/A N/A plt ylabel even_rent N/A N/A N/A plt xlabel FAR N/A N/A N/A plt title N/A Rents for use type %s name N/A N/A N/A plt legend handles N/A c parking_configs loc lower right title Parking type N/A cnt 1 N/A N/A N/A plt savefig even_rents.png bbox_inches 0 N/A N/A