基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ffsshhttiikk/opencode-agents-skills --skill ecology命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | ecology |
| description | Study of interactions between organisms and their environment, ecosystems, and populations |
| category | biology |
| keywords | ["ecology","ecosystems","populations","communities","biodiversity","food webs","conservation"] |
Ecology studies interactions between organisms and their environment at various scales. I cover population dynamics, community structure, ecosystem function, biogeography, behavioral ecology, and conservation biology. I help analyze species distributions, model population growth, and understand ecological relationships.
import numpy as np
from typing import List, Dict, Tuple
class PopulationEcology:
def __init__(self, species: str, carrying_capacity: float):
self.species = species
self.K = carrying_capacity
def exponential_growth(self, initial_pop: float,
rate: float,
time: float) -> float:
return initial_pop * np.exp(rate * time)
def logistic_growth(self, initial_pop: float,
rate: float,
time: float) -> float:
N0 = initial_pop
K = self.K
r = rate
return K / (1 + ((K - N0) / N0) * np.exp(-r * time))
def calculate_growth_rate(self, N1: float, N2: float,
dt: float) -> float:
return (np.log(N2) - np.log(N1)) / dt
def density_dependence(self, N: float,
r: float,
alpha: ) -> :
r * ( - N / .K) - alpha * (N / .K)**
() -> :
np.mean([p * r p, r (populations, growth_rates)])
() -> :
N = N0
extinction_prob =
gen (generations):
np.random.random() < catastrophe_prob:
N *=
:
N *= lambda_rate
N < :
extinction_prob += ( - extinction_prob) * ( / (gen + ))
{: extinction_prob}
:
():
.community = community_name
() -> :
total = (abundances)
proportions = [a / total a abundances]
H = -(p * np.log(p) p proportions p > )
D = (p** p proportions)
S = (abundances)
J = H / np.log(S) S >
{
: H,
: D,
: S,
: J
}
() -> :
N = (species_counts)
- (n * (n - ) n species_counts) / (N * (N - ))
() -> :
species_shared = ([ s community1 s > s < (community2) community2[s-] > ])
species_total = ([ s community1 s > ]) + \
([ s community2 s > ])
species_shared / species_total
() -> []:
(abundances, reverse=)
:
():
.ecosystem = ecosystem
() -> :
gpp - ra
() -> :
production_next / production_current *
() -> :
npp / turnover_rate
() -> :
limitation = np.sqrt(nitrogen / kn) * np.sqrt(phosphorus / kp)
nitrogen / kn < phosphorus / kp:
limiting_nutrient =
:
limiting_nutrient =
{: limitation, : limiting_nutrient}
() -> :
actual_et / potential_et
:
():
.species = species
() -> :
opt_temp = + np.random.uniform(-, )
opt_precip = + np.random.uniform(-, )
temp_suit = np.exp(-((temperature - opt_temp) / )**)
precip_suit = np.exp(-((precipitation - opt_precip) / )**)
temp_suit * precip_suit
() -> :
convex_hull = occurrences
(occurrences) *
pop = PopulationEcology(, )
N = pop.logistic_growth(, , )
()
comm = CommunityEcology()
diversity = comm.calculate_diversity_indices([, , , ])
()