﻿from __future__ import division
import jmp_score
from math import *
import numpy as np


""" ====================================================================
Copyright © 2024-2025 JMP Statistical Discovery LLC. All Rights Reserved. 
 
 Notice: The following permissions are granted provided that the above
 copyright and this notice appear in the score code and any related
 documentation. Permission to copy, modify and distribute the score
 code generated using JMP (r) software is limited to customers of JMP
 Statistical Discovery LLC ("JMP") and successive third parties, all
 without any warranty, express or implied, or any other obligation by
 JMP. JMP and all other JMP Statistical Discovery LLC product and
 service names are registered trademarks or trademarks of JMP
 Statistical Discovery LLC in the USA and other countries. Except as
 contained in this notice, the name of JMP shall not be used in the
 advertising or promotion of products or services without prior
 written authorization from JMP Statistical Discovery LLC.
 ==================================================================== """

""" Python code generated by JMP 19.0.0 """

def getModelMetadata():
	return {"creator": u"Neural", "modelName": u"Model NGaussian(1)NBoost(11) - Save Formulas", "predicted": u"healthy vs. sick", "table": u"Palau-physiological-cleaned for manuscript", "version": u"19.0.0", "timestamp": u"2025-08-08T16:10:20Z"}


def getInputMetadata():
    return {
        u"PAR": "float",
        u"PCCATS": "float",
        u"PCYTS": "float",
        u"PETS": "float",
        u"PMTS": "float",
        u"PTSTS": "float",
        u"PTTS": "float",
        u"Sum(#genera)": "float",
        u"coral cover": "float",
        u"depth (m)": "float",
        u"exposure": "str",
        u"forereef?": "str",
        u"lagoon": "str",
        u"latitude": "float",
        u"longitude": "float",
        u"max length (cm)": "float",
        u"night-day": "str",
        u"polyps extended": "str",
        u"reef emergence": "str",
        u"reef location": "str",
        u"reef type": "str",
        u"salinity": "float",
        u"temperature (C)": "float",
        u"time-binned": "str"
	}


def getOutputMetadata():
    return {
        u"Probability( healthy vs. sick=sick )_1": "float",
        u"Probability( healthy vs. sick=healthy )_1": "float",
        u"Most Likely healthy vs. sick": "str"
	}


def score(indata, outdata):
    # Original name was: 'time-binned_asCode'
    # Original name was: 'reef type_asCode'
    # Original name was: 'reef location_asCode'
    # Original name was: 'reef emergence_asCode'
    # Original name was: 'polyps extended_asCode'
    # Original name was: 'night-day_asCode'

    # Original name was: 'forereef?_asCode'

    # Original name was: 'coral cover-binned'
    # Original name was: 'Sum(#genera)-binned'
    # Original name was: 'total algal cover'
    # Original name was: 'coral/algae'











    _temp_0 = False
    _temp_1 = False
    _temp_2 = np.nan
    _temp_3 = [0 for i in range(2)]
    _temp_4 = u""

    time_binned_asCode = jmp_score.match(indata[u"time-binned"],{u"afternoon":0,u"midday":1,u"morning":2,u"night":3}, np.nan)

    reef_type_asCode = jmp_score.match(indata[u"reef type"],{u"back reef":0,u"barrier reef":1,u"channel reef":2,u"fringing reef":3,u"patch reef":4}, np.nan)

    reef_location_asCode = jmp_score.match(indata[u"reef location"],{u"back reef":0,u"fore reef":1,u"lagoonal":2}, np.nan)

    reef_emergence_asCode = jmp_score.match(indata[u"reef emergence"],{u"emergent":0,u"submerged":1}, np.nan)

    polyps_extended_asCode = jmp_score.match(indata[u"polyps extended"],{u"no":0,u"some":1,u"yes":2}, np.nan)

    night_day_asCode = jmp_score.match(indata[u"night-day"],{u"day":0,u"night":1}, np.nan)

    lagoon_asCode = jmp_score.match(indata[u"lagoon"],{u"inside":0,u"outside":1}, np.nan)

    forereef__asCode = jmp_score.match(indata[u"forereef?"],{u"no":0,u"yes":1}, np.nan)

    exposure_asCode = jmp_score.match(indata[u"exposure"],{u"exposed":0,u"intermediate":1,u"protected":2}, np.nan)

    _temp_1 = indata[u"coral cover"] < 0
    _temp_0 = jmp_score.is_missing(_temp_1)
    if _temp_1 and not _temp_0:
        _temp_2 = -1
    else:
        _temp_1 = indata[u"coral cover"] >= 100
        _temp_0 = _temp_0 or jmp_score.is_missing(_temp_1)
        if _temp_1 and not _temp_0:
            _temp_2 = 100
        else:
            if _temp_0:
                _temp_2 = np.nan
            else:
                _temp_2 = 10 * floor((indata[u"coral cover"] / 10))
    coral_cover_binned = _temp_2

    _temp_0 = indata[u"Sum(#genera)"] < 5
    _temp_1 = jmp_score.is_missing(_temp_0)
    if _temp_0 and not _temp_1:
        _temp_2 = 4
    else:
        _temp_0 = indata[u"Sum(#genera)"] >= 50
        _temp_1 = _temp_1 or jmp_score.is_missing(_temp_0)
        if _temp_0 and not _temp_1:
            _temp_2 = 50
        else:
            if _temp_1:
                _temp_2 = np.nan
            else:
                _temp_2 = 5 + 5 * floor(((indata[u"Sum(#genera)"] - 5) / 5))
    Sum_genera_binned = _temp_2

    total_algal_cover = jmp_score.sum(np.array([[indata[u"PTSTS"], indata[u"PTTS"], indata[u"PCCATS"], indata[u"PCYTS"], indata[u"PETS"], indata[u"PMTS"]]]))

    coral_algae = indata[u"coral cover"] / total_algal_cover

    H1_1_1 = jmp_score.exp(-((0.5 * jmp_score.pow((58.2123411493445 + -0.0655594804005259 * indata[u"coral cover"] + -1.56029878831279 * coral_algae + 0.0664595641483076 * indata[u"depth (m)"] + 4.46512343569243 * indata[u"latitude"] + -1.46874498771845 * indata[u"longitude"] + 0.115544571457291 * indata[u"max length (cm)"] + 0.0303589678783339 * indata[u"PAR"] + 2.40902196295176 * indata[u"salinity"] + -0.0621746521573131 * indata[u"Sum(#genera)"] + 0.985823608464486 * indata[u"temperature (C)"] + -0.042548641336586 * total_algal_cover + jmp_score.match(forereef__asCode,{0:-0.569739306471809,1:0.569739306471809}, np.nan) + jmp_score.match(lagoon_asCode,{0:-2.20834522424232,1:2.20834522424232}, np.nan) + jmp_score.match(night_day_asCode,{0:-1.20449806305132,1:1.20449806305132}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:-1.35019523433493,1:1.35019523433493}, np.nan) + jmp_score.match(exposure_asCode,{0:0.843233803833131,1:0.0791191638659552,2:-0.922352967699086}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:-1.34252116759887,1:-2.36264315555375,2:3.70516432315262}, np.nan) + jmp_score.match(reef_location_asCode,{0:0.594602618839446,1:-0.0573778954044678,2:-0.537224723434979}, np.nan) + jmp_score.match(time_binned_asCode,{0:-1.61201296751166,1:-2.91795875886538,2:0.906464231389677,3:3.62350749498736}, np.nan) + jmp_score.match(reef_type_asCode,{0:-2.31336322561267,1:1.97411937207657,2:0.0530882882879125,3:2.89490783625943,4:-2.60875227101123}, np.nan) + jmp_score.match(coral_cover_binned,{10:-0.482939067460822,20:2.75642280240108,30:-1.24992016423172,40:0.988521657678893,50:-0.057344972417421,60:-1.95474025597001}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-2.5794595496719,20:-3.20757631054827,25:0.645622922293728,30:0.302083547449975,35:-5.77005073196272,40:2.82861216051533,45:7.78076796192386}, np.nan)), 2))))

    H1_2_1 = jmp_score.exp(-((0.5 * jmp_score.pow((-550.568705308336 + 0.0154327362697145 * indata[u"coral cover"] + -0.621354612208576 * coral_algae + 0.0584333167415246 * indata[u"depth (m)"] + 3.21331501861298 * indata[u"latitude"] + 3.99050532465736 * indata[u"longitude"] + -0.00899649831921297 * indata[u"max length (cm)"] + 0.0168676261399037 * indata[u"PAR"] + -0.970172290360809 * indata[u"salinity"] + -0.0106838478441873 * indata[u"Sum(#genera)"] + 0.578776450083256 * indata[u"temperature (C)"] + 0.144386100213591 * total_algal_cover + jmp_score.match(forereef__asCode,{0:-0.329573572181405,1:0.329573572181405}, np.nan) + jmp_score.match(lagoon_asCode,{0:0.00786234770135568,1:-0.00786234770135568}, np.nan) + jmp_score.match(night_day_asCode,{0:-0.166695558904334,1:0.166695558904334}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:0.334531036660284,1:-0.334531036660284}, np.nan) + jmp_score.match(exposure_asCode,{0:-1.0306515187944,1:0.186237459894696,2:0.844414058899707}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:-1.34569214457147,1:0.0291639025832378,2:1.31652824198823}, np.nan) + jmp_score.match(reef_location_asCode,{0:1.04875686244116,1:0.0137592899785605,2:-1.06251615241972}, np.nan) + jmp_score.match(time_binned_asCode,{0:0.378420092735616,1:-1.69039008964019,2:3.17914493846241,3:-1.86717494155783}, np.nan) + jmp_score.match(reef_type_asCode,{0:1.6354659163482,1:0.191887467752144,2:1.07543091740541,3:0.523510679203356,4:-3.42629498070911}, np.nan) + jmp_score.match(coral_cover_binned,{10:0.705671113055332,20:-1.56410728962209,30:-0.450108982045981,40:0.141032456162883,50:-0.639447932451141,60:1.806960634901}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-3.57236813489908,20:0.852787217090034,25:-1.17931937444288,30:3.79426244189611,35:-1.08470145538774,40:0.900388270581144,45:0.288951035162413}, np.nan)), 2))))

    H1_3_1 = jmp_score.exp(-((0.5 * jmp_score.pow((653.899623393199 + 0.0199113061258152 * indata[u"coral cover"] + -0.209127927633164 * coral_algae + 0.0797624809692644 * indata[u"depth (m)"] + -0.399890691931375 * indata[u"latitude"] + -4.5122499123341 * indata[u"longitude"] + 0.07601512295311 * indata[u"max length (cm)"] + -0.0102313364711844 * indata[u"PAR"] + -1.20893442241128 * indata[u"salinity"] + -0.143180680166042 * indata[u"Sum(#genera)"] + 0.109748481382133 * indata[u"temperature (C)"] + -0.0208002999391412 * total_algal_cover + jmp_score.match(forereef__asCode,{0:-0.462392982740445,1:0.462392982740445}, np.nan) + jmp_score.match(lagoon_asCode,{0:-1.68060129063773,1:1.68060129063773}, np.nan) + jmp_score.match(night_day_asCode,{0:1.04815690543579,1:-1.04815690543579}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:1.83724049617476,1:-1.83724049617476}, np.nan) + jmp_score.match(exposure_asCode,{0:-1.28065877974299,1:0.816634963781378,2:0.464023815961608}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:2.45882970203497,1:2.14949019108695,2:-4.60831989312193}, np.nan) + jmp_score.match(reef_location_asCode,{0:-0.631017392733008,1:2.68284346890223,2:-2.05182607616923}, np.nan) + jmp_score.match(time_binned_asCode,{0:2.14696492768032,1:-2.83514119066996,2:2.78281116867042,3:-2.09463490568078}, np.nan) + jmp_score.match(reef_type_asCode,{0:0.230322863461003,1:2.59659208661867,2:2.45574966171029,3:2.08210981232874,4:-7.36477442411871}, np.nan) + jmp_score.match(coral_cover_binned,{10:-1.63580058392739,20:0.78967744457081,30:-2.23964813166126,40:-1.23917555494018,50:0.525654291871765,60:3.79929253408626}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-0.0392185669074465,20:3.80960168892822,25:-0.560310538038643,30:1.40954855716822,35:0.444941048852341,40:-1.08236651228201,45:-3.98219567772069}, np.nan)), 2))))

    H1_4_1 = jmp_score.exp(-((0.5 * jmp_score.pow((2001.32138598737 + 0.281762436506331 * indata[u"coral cover"] + 0.468803984941772 * coral_algae + -0.118996661581319 * indata[u"depth (m)"] + -9.03882306566701 * indata[u"latitude"] + -12.6814597441909 * indata[u"longitude"] + -0.55669742513802 * indata[u"max length (cm)"] + -0.0706471600713479 * indata[u"PAR"] + -8.93056392890386 * indata[u"salinity"] + 0.0842200421997721 * indata[u"Sum(#genera)"] + 2.38121362145581 * indata[u"temperature (C)"] + -0.176735321807936 * total_algal_cover + jmp_score.match(forereef__asCode,{0:0.203607227508973,1:-0.203607227508973}, np.nan) + jmp_score.match(lagoon_asCode,{0:-1.37710318254057,1:1.37710318254057}, np.nan) + jmp_score.match(night_day_asCode,{0:-0.152098077311069,1:0.152098077311069}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:-3.70171819236902,1:3.70171819236902}, np.nan) + jmp_score.match(exposure_asCode,{0:-0.0498601438939979,1:-0.0925266651581358,2:0.142386809052134}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:-7.6587318132917,1:-8.84631861030761,2:16.5050504235993}, np.nan) + jmp_score.match(reef_location_asCode,{0:-3.6601405268471,1:-0.0807068846315003,2:3.7408474114786}, np.nan) + jmp_score.match(time_binned_asCode,{0:-5.14324786090709,1:10.0177939411333,2:-5.4999771243562,3:0.62543104412994}, np.nan) + jmp_score.match(reef_type_asCode,{0:1.31142930822748,1:2.38898007799489,2:-3.07436865240531,3:-0.0735605262059949,4:-0.552480207611072}, np.nan) + jmp_score.match(coral_cover_binned,{10:-0.0867717853129826,20:1.49224377969445,30:0.0733448727950163,40:2.89690002462003,50:4.25973239649991,60:-8.63544928829642}, np.nan) + jmp_score.match(Sum_genera_binned,{15:2.74824194381167,20:3.45736625639642,25:-4.18315034312659,30:23.971046580627,35:-9.095847452554,40:3.68041508855314,45:-20.5780720737076}, np.nan)), 2))))

    H1_5_1 = jmp_score.exp(-((0.5 * jmp_score.pow((315.098590194017 + 0.0599714133462509 * indata[u"coral cover"] + 0.605553558542823 * coral_algae + 0.0925487988554682 * indata[u"depth (m)"] + 0.969687121221183 * indata[u"latitude"] + -2.18868777335632 * indata[u"longitude"] + 0.150541185751724 * indata[u"max length (cm)"] + -0.0141995989337855 * indata[u"PAR"] + -0.202531561738454 * indata[u"salinity"] + -0.0204887511447335 * indata[u"Sum(#genera)"] + -0.85387154485441 * indata[u"temperature (C)"] + -0.0196760279474483 * total_algal_cover + jmp_score.match(forereef__asCode,{0:-0.257312201424784,1:0.257312201424784}, np.nan) + jmp_score.match(lagoon_asCode,{0:-0.55736110120982,1:0.55736110120982}, np.nan) + jmp_score.match(night_day_asCode,{0:-0.599292970921234,1:0.599292970921234}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:0.69911293926284,1:-0.69911293926284}, np.nan) + jmp_score.match(exposure_asCode,{0:-1.0114592392589,1:-0.285183881373564,2:1.29664312063246}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:0.218688252974715,1:0.675013892435718,2:-0.893702145410433}, np.nan) + jmp_score.match(reef_location_asCode,{0:0.101058871577637,1:-0.442353920678487,2:0.34129504910085}, np.nan) + jmp_score.match(time_binned_asCode,{0:-2.61011425243353,1:-0.585706088982397,2:0.311801588410572,3:2.88401875300536}, np.nan) + jmp_score.match(reef_type_asCode,{0:-0.29114841673519,1:0.675727414200273,2:0.790936189420489,3:-0.112789004808605,4:-1.06272618207697}, np.nan) + jmp_score.match(coral_cover_binned,{10:-1.01454371396056,20:-0.525885265042677,30:0.103628571117073,40:0.0294431475654497,50:0.30210486064014,60:1.10525239968057}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-2.41398091547771,20:-0.916593754278822,25:0.0687905333994479,30:1.14749759072025,35:-0.508721786446933,40:-2.04877237052337,45:4.67178070260714}, np.nan)), 2))))

    H1_6_1 = jmp_score.exp(-((0.5 * jmp_score.pow((963.903860595001 + -0.146549969748496 * indata[u"coral cover"] + -0.941355048595464 * coral_algae + -0.653288677582699 * indata[u"depth (m)"] + -1.76432855134221 * indata[u"latitude"] + -6.69148242884274 * indata[u"longitude"] + 0.655573272411139 * indata[u"max length (cm)"] + -0.0157761027415513 * indata[u"PAR"] + -0.886549527076167 * indata[u"salinity"] + -0.332250867348515 * indata[u"Sum(#genera)"] + 0.268234433104696 * indata[u"temperature (C)"] + -0.105221945887846 * total_algal_cover + jmp_score.match(forereef__asCode,{0:-0.229178089883354,1:0.229178089883354}, np.nan) + jmp_score.match(lagoon_asCode,{0:-0.33117119028905,1:0.33117119028905}, np.nan) + jmp_score.match(night_day_asCode,{0:0.537303225363704,1:-0.537303225363704}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:2.70952126176096,1:-2.70952126176096}, np.nan) + jmp_score.match(exposure_asCode,{0:1.00750973665125,1:-1.91223638692364,2:0.90472665027239}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:2.06886172036968,1:0.841280113463782,2:-2.91014183383346}, np.nan) + jmp_score.match(reef_location_asCode,{0:1.09401299776554,1:0.223984615520355,2:-1.3179976132859}, np.nan) + jmp_score.match(time_binned_asCode,{0:1.28473108248556,1:-2.10634412229049,2:0.831501017575079,3:-0.0098879777701556}, np.nan) + jmp_score.match(reef_type_asCode,{0:0.0713860657769716,1:0.902889772534874,2:2.36426369781805,3:-0.778306129661122,4:-2.56023340646877}, np.nan) + jmp_score.match(coral_cover_binned,{10:7.21404440424111,20:-0.228638877252117,30:1.48310783866782,40:1.98142868018332,50:1.18209413065659,60:-11.6320361764967}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-3.31934614695262,20:2.44700023855523,25:-1.1943375033718,30:0.975160366777677,35:-1.83246452152137,40:-8.96362384566087,45:11.8876114121738}, np.nan)), 2))))

    H1_7_1 = jmp_score.exp(-((0.5 * jmp_score.pow((885.04801359056 + 0.0991705194174537 * indata[u"coral cover"] + 0.917584015638418 * coral_algae + 0.155786173476543 * indata[u"depth (m)"] + -11.1703829564985 * indata[u"latitude"] + -6.33135429495162 * indata[u"longitude"] + 0.487297851867418 * indata[u"max length (cm)"] + -0.0181426958124152 * indata[u"PAR"] + -1.20306859554322 * indata[u"salinity"] + -0.0235662909540038 * indata[u"Sum(#genera)"] + 2.70174598247509 * indata[u"temperature (C)"] + -0.108366530124217 * total_algal_cover + jmp_score.match(forereef__asCode,{0:-0.803534819617463,1:0.803534819617463}, np.nan) + jmp_score.match(lagoon_asCode,{0:-0.38205426107334,1:0.38205426107334}, np.nan) + jmp_score.match(night_day_asCode,{0:-0.0448004847875121,1:0.0448004847875121}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:2.18064663650749,1:-2.18064663650749}, np.nan) + jmp_score.match(exposure_asCode,{0:-0.663251022580789,1:-1.38902018316021,2:2.052271205741}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:-3.06216007640372,1:3.48446516314598,2:-0.42230508674226}, np.nan) + jmp_score.match(reef_location_asCode,{0:0.839298142826224,1:0.637837430471746,2:-1.47713557329797}, np.nan) + jmp_score.match(time_binned_asCode,{0:-3.80676673874582,1:2.41472432185174,2:3.12328720017357,3:-1.73124478327949}, np.nan) + jmp_score.match(reef_type_asCode,{0:-2.41832258988934,1:-0.601149751089142,2:-0.789068551654339,3:-0.689256072811512,4:4.49779696544434}, np.nan) + jmp_score.match(coral_cover_binned,{10:-1.58112994708416,20:-1.33793657682347,30:-3.08070560275751,40:0.763396949911438,50:-0.365262464214872,60:5.60163764096857}, np.nan) + jmp_score.match(Sum_genera_binned,{15:7.77425434771772,20:-0.19157365943499,25:-1.18806689893548,30:-2.26556330123475,35:-5.22247554695426,40:13.6138829826674,45:-12.5204579238257}, np.nan)), 2))))

    H1_8_1 = jmp_score.exp(-((0.5 * jmp_score.pow((-332.244876508033 + -0.0222457905141649 * indata[u"coral cover"] + 0.89838024785257 * coral_algae + 0.0593297092565684 * indata[u"depth (m)"] + 1.29557192216546 * indata[u"latitude"] + 2.57382692486467 * indata[u"longitude"] + -0.185968853217751 * indata[u"max length (cm)"] + -0.0247979264785198 * indata[u"PAR"] + -0.21491297631901 * indata[u"salinity"] + -0.0120835881713671 * indata[u"Sum(#genera)"] + -0.558015491944427 * indata[u"temperature (C)"] + 0.0316296086997933 * total_algal_cover + jmp_score.match(forereef__asCode,{0:0.135999761628421,1:-0.135999761628421}, np.nan) + jmp_score.match(lagoon_asCode,{0:0.579352026327296,1:-0.579352026327296}, np.nan) + jmp_score.match(night_day_asCode,{0:0.735000332594542,1:-0.735000332594542}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:-0.690293726340669,1:0.690293726340669}, np.nan) + jmp_score.match(exposure_asCode,{0:0.622058807009939,1:-0.00669765697056594,2:-0.615361150039373}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:-0.83780460024462,1:-3.81188375459119,2:4.64968835483581}, np.nan) + jmp_score.match(reef_location_asCode,{0:-0.072351606406846,1:-0.766172370557795,2:0.838523976964641}, np.nan) + jmp_score.match(time_binned_asCode,{0:0.658684832921585,1:-0.569647433016653,2:0.0768223664050479,3:-0.165859766309979}, np.nan) + jmp_score.match(reef_type_asCode,{0:0.183486937984344,1:-0.019624212810286,2:0.729122378068242,3:-0.360043605644267,4:-0.532941497598034}, np.nan) + jmp_score.match(coral_cover_binned,{10:2.20978581546567,20:0.534433731164827,30:0.839644778831397,40:0.732494392422442,50:2.3445044739986,60:-6.66086319188294}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-1.85142772055461,20:2.70283521163539,25:0.449415583805806,30:-0.0058507915104059,35:4.07602186423576,40:-1.89879518162351,45:-3.47219896598843}, np.nan)), 2))))

    H1_9_1 = jmp_score.exp(-((0.5 * jmp_score.pow((-291.344239930136 + 0.00262872102442868 * indata[u"coral cover"] + 1.81395188588236 * coral_algae + 0.00157667523792818 * indata[u"depth (m)"] + 1.70593048794504 * indata[u"latitude"] + 2.6250955434911 * indata[u"longitude"] + -0.0567355214675725 * indata[u"max length (cm)"] + -0.0131935148951091 * indata[u"PAR"] + -1.74934774329635 * indata[u"salinity"] + 0.169642713095298 * indata[u"Sum(#genera)"] + -0.875509779955882 * indata[u"temperature (C)"] + 0.0758248576788898 * total_algal_cover + jmp_score.match(forereef__asCode,{0:0.718998954534715,1:-0.718998954534715}, np.nan) + jmp_score.match(lagoon_asCode,{0:0.780367682133331,1:-0.780367682133331}, np.nan) + jmp_score.match(night_day_asCode,{0:-0.0147051827347043,1:0.0147051827347043}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:0.72821022684428,1:-0.72821022684428}, np.nan) + jmp_score.match(exposure_asCode,{0:-1.52135019887275,1:0.107155438846193,2:1.41419476002656}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:-1.60465855727857,1:0.581150496927784,2:1.02350806035078}, np.nan) + jmp_score.match(reef_location_asCode,{0:-0.287876171119063,1:-0.550102915912682,2:0.837979087031745}, np.nan) + jmp_score.match(time_binned_asCode,{0:0.707621746757969,1:0.46612190908908,2:-1.2800950524253,3:0.106351396578251}, np.nan) + jmp_score.match(reef_type_asCode,{0:0.524464858467636,1:0.814852228822115,2:0.956883165878335,3:-0.786351180328198,4:-1.50984907283989}, np.nan) + jmp_score.match(coral_cover_binned,{10:-1.26493369382293,20:-0.994895149142944,30:0.576977557106512,40:-1.51376055206695,50:2.06887968298078,60:1.12773215494553}, np.nan) + jmp_score.match(Sum_genera_binned,{15:2.18038444674663,20:-0.969644163415342,25:0.236531004907882,30:-2.10622902268233,35:0.147224233703468,40:-0.695129826515773,45:1.20686332725547}, np.nan)), 2))))

    H1_10_1 = jmp_score.exp(-((0.5 * jmp_score.pow((54.6614322536227 + -0.0480684882635129 * indata[u"coral cover"] + -1.14012780570236 * coral_algae + 0.0336338426949392 * indata[u"depth (m)"] + 2.74233247370159 * indata[u"latitude"] + 0.158249538576472 * indata[u"longitude"] + 0.216315849851453 * indata[u"max length (cm)"] + -0.00782842952189634 * indata[u"PAR"] + -0.86695746867351 * indata[u"salinity"] + 0.214434302501191 * indata[u"Sum(#genera)"] + -2.41312129452446 * indata[u"temperature (C)"] + 0.0221513927855552 * total_algal_cover + jmp_score.match(forereef__asCode,{0:-0.00751673332930551,1:0.00751673332930551}, np.nan) + jmp_score.match(lagoon_asCode,{0:-0.652889967911862,1:0.652889967911862}, np.nan) + jmp_score.match(night_day_asCode,{0:-1.65245139485786,1:1.65245139485786}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:0.36266032708932,1:-0.36266032708932}, np.nan) + jmp_score.match(exposure_asCode,{0:-0.365412294495337,1:-0.438235519944434,2:0.803647814439771}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:2.12404732693848,1:0.826761862791434,2:-2.95080918972991}, np.nan) + jmp_score.match(reef_location_asCode,{0:-0.723127166236118,1:-0.554455708391922,2:1.27758287462804}, np.nan) + jmp_score.match(time_binned_asCode,{0:2.21671531002332,1:-1.79672225009366,2:2.64057802887334,3:-3.060571088803}, np.nan) + jmp_score.match(reef_type_asCode,{0:-2.23183100086968,1:-2.03397350194797,2:1.1078953280235,3:0.570471292173352,4:2.5874378826208}, np.nan) + jmp_score.match(coral_cover_binned,{10:-0.0636041394805654,20:0.532285036298592,30:1.01354671112564,40:0.755445840846195,50:1.28484631333028,60:-3.52251976212014}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-2.46454873777306,20:-2.97818651319292,25:0.0156658028904649,30:0.187386803334122,35:-2.95740810134232,40:2.34929378037097,45:5.84779696571274}, np.nan)), 2))))

    H1_11_1 = jmp_score.exp(-((0.5 * jmp_score.pow((-336.048594722204 + -0.0131124875434559 * indata[u"coral cover"] + -0.270730752123414 * coral_algae + 0.168728469777314 * indata[u"depth (m)"] + 2.29864457695723 * indata[u"latitude"] + 2.41475574102359 * indata[u"longitude"] + -0.336383775716706 * indata[u"max length (cm)"] + -0.0174629332895824 * indata[u"PAR"] + 1.69579719124638 * indata[u"salinity"] + 0.163565058625305 * indata[u"Sum(#genera)"] + -2.17541406009802 * indata[u"temperature (C)"] + 0.0329902942212686 * total_algal_cover + jmp_score.match(forereef__asCode,{0:0.935046682378804,1:-0.935046682378804}, np.nan) + jmp_score.match(lagoon_asCode,{0:1.76364891151974,1:-1.76364891151974}, np.nan) + jmp_score.match(night_day_asCode,{0:1.21167128799416,1:-1.21167128799416}, np.nan) + jmp_score.match(reef_emergence_asCode,{0:0.0370959386100639,1:-0.0370959386100639}, np.nan) + jmp_score.match(exposure_asCode,{0:1.74446750513872,1:2.04144318782232,2:-3.78591069296104}, np.nan) + jmp_score.match(polyps_extended_asCode,{0:-3.00951551855359,1:3.27313418951767,2:-0.263618670964074}, np.nan) + jmp_score.match(reef_location_asCode,{0:0.696800021959325,1:-0.410180939131089,2:-0.286619082828235}, np.nan) + jmp_score.match(time_binned_asCode,{0:-0.854030420667474,1:-1.76732913405644,2:1.15487393975785,3:1.46648561496607}, np.nan) + jmp_score.match(reef_type_asCode,{0:-0.151690487801552,1:0.694634057186809,2:1.44925556397859,3:0.505467122714571,4:-2.49766625607842}, np.nan) + jmp_score.match(coral_cover_binned,{10:-0.0143841482765345,20:-1.81929715146964,30:0.0603640276355711,40:1.01698278866651,50:-1.07638717302603,60:1.83272165647013}, np.nan) + jmp_score.match(Sum_genera_binned,{15:-1.77147935541787,20:-1.11858429279451,25:-2.41113260501584,30:0.29705909546373,35:0.279708445599049,40:-0.160391841098536,45:4.88482055326398}, np.nan)), 2))))

    outdata[u"Probability( healthy vs. sick=sick )_1"] = jmp_score.exp((-0.898194887487413 + -0.454300708721528 * H1_1_1 + 0.155801905609218 * H1_10_1 + 1.8089752429071 * H1_11_1 + 0.214790873255924 * H1_2_1 + 1.01014275311403 * H1_3_1 + 1.86376859673639 * H1_4_1 + 0.195694903376548 * H1_5_1 + -2.18817338727237 * H1_6_1 + 0.844061262676632 * H1_7_1 + 0.748902225603966 * H1_8_1 + -0.369299962193819 * H1_9_1)) / (1 + jmp_score.exp((-0.898194887487413 + -0.454300708721528 * H1_1_1 + 0.155801905609218 * H1_10_1 + 1.8089752429071 * H1_11_1 + 0.214790873255924 * H1_2_1 + 1.01014275311403 * H1_3_1 + 1.86376859673639 * H1_4_1 + 0.195694903376548 * H1_5_1 + -2.18817338727237 * H1_6_1 + 0.844061262676632 * H1_7_1 + 0.748902225603966 * H1_8_1 + -0.369299962193819 * H1_9_1)))

    outdata[u"Probability( healthy vs. sick=healthy )_1"] = 1 / (1 + jmp_score.exp((-0.898194887487413 + -0.454300708721528 * H1_1_1 + 0.155801905609218 * H1_10_1 + 1.8089752429071 * H1_11_1 + 0.214790873255924 * H1_2_1 + 1.01014275311403 * H1_3_1 + 1.86376859673639 * H1_4_1 + 0.195694903376548 * H1_5_1 + -2.18817338727237 * H1_6_1 + 0.844061262676632 * H1_7_1 + 0.748902225603966 * H1_8_1 + -0.369299962193819 * H1_9_1)))

    _temp_3[0] = outdata[u"Probability( healthy vs. sick=sick )_1"]
    _temp_3[1] = outdata[u"Probability( healthy vs. sick=healthy )_1"]
    _temp_0 = jmp_score.max_array(2, _temp_3)
    if jmp_score.mz(_temp_0 == 0):
        _temp_4 = u"sick"
    elif jmp_score.mz(_temp_0 == 1):
        _temp_4 = u"healthy"
    else:
        _temp_4 = u""
    outdata[u"Most Likely healthy vs. sick"] = _temp_4

    return outdata[u"Most Likely healthy vs. sick"]


