# Catalog de funcții personalizate

GeoPard oferă un catalog cuprinzător de funcții personalizate, concepute pentru a îmbunătăți lizibilitatea și funcționalitatea analizelor bazate pe ecuații. Aceste funcții încapsulează cod `python` permițându-vă să implementați cu ușurință manipulări și calcule sofisticate ale datelor.

### Introduceți ecuația

<figure><img src="https://docs.geopard.tech/~gitbook/image?url=https%3A%2F%2F3272281156-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYICBELdyAXXebKAzfLOR%252Fuploads%252FdHTdBE1CN2gSJbE7Bfo0%252Fimage.png%3Falt%3Dmedia%26token%3Dd8e3544f-feca-43a6-b6a1-f1305068de88&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=508ec9e0&#x26;sv=2" alt=""><figcaption><p>Introduceți o ecuație</p></figcaption></figure>

Lista funcțiilor predefinite disponibile pentru crearea unor ecuații mai intuitive și mai ușor de întreținut în GeoPard este inclusă în pachetul `geopard` pachet:

### fill\_gaps\_with\_k\_neighbors

```python
# input_data este un strat de atribute al setului de date (de ex., Producție, NDVI)
filled_layer = geopard.fill_gaps_with_k_neighbors(yield_layer, k=5)
```

Această funcție reface golurile de date sau valorile zero dintr-un set de date folosind algoritmul K-Neighbors. Prin specificarea variabilei `input_data` (ca set de date cu atributul selectat) și a numărului de vecini `k`, puteți completa fără probleme valorile lipsă, asigurând continuitatea și integritatea datelor.

Această funcție funcționează bine atunci când golurile de date sunt distribuite pe parcelă și nu sunt localizate într-o anumită parte a limitei parcelei.

### determine\_data\_similarity

```python
similarity = geopard.determine_data_similarity(yield_2023, yield_2024)
```

Utilizați această funcție pentru a calcula similaritatea per pixel între două seturi de date. Variabilele `data_layer_1` și `data_layer_2` ar trebui să reprezinte **aceeași măsurătoare** în **aceleași unități** pentru a asigura o comparație relevantă. Prin furnizarea variabilelor `data_layer_1` și `data_layer_2` asociate cu seturi de date, puteți genera o hartă de similaritate cu valori între 0 și 1, facilitând studiile comparative și recunoașterea tiparelor.

### determine\_data\_similarity\_from\_normalized

```python
layer_1_norm = geopard.normalize_data(layer_1)
layer_2_norm = geopard.normalize_data(layer_2)

similarity = geopard.determine_data_similarity_from_normalized(layer_1_norm, layer_2_norm)
```

Utilizați această funcție pentru a calcula similaritatea per pixel între două seturi de date normalizate. Normalizarea este recomandată atunci când valorile originale `data_layer_1` și `data_layer_2` au scări sau unități diferite. Prin furnizarea acestor seturi de date ca intrare, funcția generează o hartă de similaritate cu valori între 0 și 1, fiind potrivită pentru studii comparative, recunoașterea tiparelor și analiza consistenței spațiale.

### determine\_low\_high\_similarity

```python
zones = geopard.determine_low_high_similarity(soil_ph, yield_layer)
```

Această funcție evaluează similaritatea scăzut-ridicată între două seturi de date. Prin introducerea variabilelor `data_layer_1` și `data_layer_2` asociate cu seturi de date, primiți o hartă de similaritate categorizată care indică combinații precum scăzut-scăzut, scăzut-ridicat, ridicat-scăzut și ridicat-ridicat, utilă pentru o clasificare nuanțată a datelor.

### get\_value\_for\_zone

```python
zone_3_values = geopard.get_value_for_zone(yield_layer, zone_map, zone_id=3)
```

Utilizați această funcție pentru a extrage toate valorile unui atribut dintr-un set de date din interiorul unei singure zone. Furnizați `data_layer` (stratul de atribute), `zones_layer` (harta zonelor) și `zone_id` (numărul zonei) pentru a izola valorile pentru analiză, cum ar fi producția, rata de aplicare sau norma de semănat, din interiorul acelei zone.

### drop\_value

```python
clean_layer = geopard.drop_value(elevation_layer, value_to_drop=0)
```

Această funcție vă permite să eliminați valori specifice dintr-un atribut al setului de date. Prin specificarea `data_layer` și `value_to_drop`, puteți curăța setul de date eliminând acele valori din rezultat, înlocuindu-le tehnic cu `NaN`.

### normalize\_data

```python
ndvi_normalized = geopard.normalize_data(ndvi_layer)
```

Normalizați un atribut al setului de date cu această funcție. Prin transmiterea `data_layer`, puteți scala datele la un interval standardizat de la 0 la 1, făcând mai ușoară compararea și integrarea între diferite seturi de date.

### calculate\_total\_applied\_fertilizer

```python
applications = [urea_rate, map_rate]
coefficients = [1.0, 1.0]  # utilizați 1.0 pentru a păstra unitățile sau ajustați pentru concentrația produsului

total_applied = geopard.calculate_total_applied_fertilizer(applications, coefficients)
```

Calculați cantitatea totală de îngrășământ aplicată în unități pe suprafață (de exemplu, în kg/ha, l/ha, gal/ac etc.). Prin furnizarea `application_list` seturilor de date cu atribute AppliedRate și a listei corespunzătoare `active_ingredient_coefficient_list` cu produse fertilizante pentru a obține cantitatea totală reală de îngrășământ aplicată în unități (de exemplu, în kg, l, gal etc.).

### calculate\_total\_applied\_nitrogen

```python
applications = [urea_rate, uan_rate]
nitrogen_coefficients = [0.46, 0.32]  # fracția de N (substanță activă) din fiecare produs

N_total_applied = geopard.calculate_total_applied_nitrogen(applications, nitrogen_coefficients)
```

Calculați cantitatea totală de azot aplicată în kg/ha folosind această funcție. Prin furnizarea `application_list` seturilor de date cu atribute AppliedRate și a listei corespunzătoare `active_ingredient_coefficient_list` cu produse pe bază de azot pentru a converti azotul efectiv în kg/ha, puteți calcula cu precizie cantitatea totală de azot aplicată, esențială pentru planificarea agricolă și evaluările de sustenabilitate. Rezultatul este utilizat ca `N_total_applied` în[`geopard.calculate_nitrogen_use_efficiency`](#calculate_nitrogen_use_efficiency).

### calculate\_nitrogen\_uptake

```python
N_uptake = geopard.calculate_nitrogen_uptake(
    yield_wet_tha=yield_layer,
    moisture_pct=moisture_layer,
    protein_pct=protein_layer,
    protein_crop_correction_coefficient=6.25
)
```

Determinați absorbția de azot în kg/ha cu această funcție. Prin furnizarea `yield_wet_tha`, `moisture_pct`, `protein_pct` din setul de date de producție și a `protein_crop_correction_coefficient` care reprezintă legătura dintre proteină și absorbția de azot, puteți evalua eficiența utilizării azotului în producția agricolă. Rezultatul este utilizat ca `N_uptake` în[`geopard.calculate_nitrogen_use_efficiency`](#calculate_nitrogen_use_efficiency) .

### calculate\_nitrogen\_use\_efficiency

```python
NUE_pct = geopard.calculate_nitrogen_use_efficiency(N_total_applied, N_uptake)
```

Evaluați eficiența utilizării azotului ca procent folosind această funcție. Prin introducerea [`N_total_applied`](#calculate_total_applied_nitrogen) și [`N_uptake`](#calculate_nitrogen_uptake) variabilelor (din funcțiile anterioare), puteți măsura eficacitatea aplicării azotului, contribuind la optimizarea utilizării îngrășămintelor.

### calculate\_costs

```python
rates = [seed_rate, fertilizer_rate]
prices = [1.2, 0.8]  # preț pe unitate pentru fiecare strat de rată
costs = geopard.calculate_costs(rates, prices)
```

Calculați costurile totale pe baza ratelor de aplicare și a prețurilor cu această funcție. Prin furnizarea unei `application_rate_list` de seturi de date cu atributele AppliedRate și a unei liste corespunzătoare `price_per_unit_list`, puteți agrega cheltuielile legate de diverse activități agricole, sprijinind gestionarea bugetului și planificarea financiară. Rezultatul este utilizat ca `costs` în[`geopard.calculate_profit`](#calculate_profit).

### calculate\_revenue

```python
revenue = geopard.calculate_revenue(yield_as_mass=yield_layer, yield_price_per_unit=0.25)
```

Calculați venitul din setul de date de producție folosind această funcție. Prin introducerea `yield_as_mass` asociat cu atributul setului de date de producție și a `yield_price_per_unit`, puteți estima venitul generat din producția agricolă, facilitând evaluările economice. Rezultatul este utilizat ca `costs` în[`geopard.calculate_profit`](#calculate_profit) .

### calculate\_profit

```python
profit = geopard.calculate_profit(revenue, costs)
```

Determinați profitul prin scăderea costurilor din venit folosind această funcție. Prin furnizarea [`revenue`](#calculate_revenue) și [`costs`](#calculate_costs) variabilelor (din funcțiile anterioare), puteți calcula cu ușurință câștigul financiar din operațiunile agricole, sprijinind analiza profitabilității și luarea deciziilor strategice.

### fill\_value\_for\_range

```python
# păstrați doar valorile între 10 și 20, înlocuiți restul cu 0
filtered = geopard.fill_value_for_range(layer, min_value=10, max_value=20, value_to_fill=0)
```

Această funcție filtrează valorile dintr-un interval specificat în `input` matrice. Prin furnizarea `input` matricei, împreună cu pragurile opționale `min_value` și opționale `max_value` , puteți izola valorile care se încadrează în intervalul dorit. Parametrul `value_to_fill` permite înlocuirea valorilor din afara intervalului cu o valoare specificată, îmbunătățind procesele de filtrare și normalizare a datelor.

### calculate\_per\_pixel\_mae

```python
mae_layer = geopard.calculate_per_pixel_mae(predicted_yield, observed_yield)
```

Utilizați această funcție pentru a calcula eroarea medie absolută (MAE) per pixel între două seturi de date. Aceasta oferă o hartă spațială a diferențelor absolute. „Diferența absolută” este pur și simplu mărimea decalajului dintre valorile pixelilor corespunzători, fără a ține cont dacă una este mai mare sau mai mică.

Funcția ajută la identificarea zonelor cu discrepanțe mai mari.

### calculate\_per\_pixel\_relative\_deviation

```python
relative_dev = geopard.calculate_per_pixel_relative_deviation(observed_yield, modeled_yield)
```

Această funcție calculează abaterea relativă pentru fiecare pixel între două seturi de date, exprimând diferența ca procent din valoarea din `dataset_1`. În esență, arată cu cât se abate valoarea unui pixel față de valoarea corespunzătoare din `dataset_1` în termeni proporționali.

Această abordare este deosebit de valoroasă atunci când analizați variațiile proprietăților solului, producției culturilor sau datelor de teledetecție, deoarece vă ajută să identificați rapid zonele cu diferențe proporționale semnificative.

### calculate\_difference

```python
difference = geopard.calculate_difference(yield_2024, yield_2023)
```

Această funcție scade un set de date din altul pentru a crea o hartă a diferențelor. Evidențiază zonele în care valorile dintr-un set de date sunt mai mari sau mai mici comparativ cu celălalt, făcând mai ușoară identificarea tendințelor și schimbărilor în timp.

Acest instrument este deosebit de util pentru vizualizarea variațiilor proprietăților solului, producției culturilor sau datelor de teledetecție, ajutându-vă să identificați rapid zonele care pot necesita analize suplimentare sau intervenție.

### calculate\_relative\_difference

```python
relative_diff = geopard.calculate_relative_difference(yield_2024, yield_2023)
```

Această funcție calculează diferența relativă pentru fiecare pixel prin normalizarea diferenței dintre seturile de date folosind valorile din `dataset_2`. Aceasta înseamnă că arată cât de semnificativă este schimbarea în raport cu magnitudinea `dataset_2`.

O astfel de comparație proporțională este deosebit de utilă atunci când lucrați cu seturi de date de scări diferite, ajutând la evidențierea schimbărilor relative în proprietățile solului, producțiile culturilor sau rezultatele senzorilor. Această abordare ajută la identificarea zonelor cu variații notabile.

### calculate\_normalized\_difference

```python
normalized_diff = geopard.calculate_normalized_difference(layer_1, layer_2)
```

Această funcție calculează diferența normalizată pentru fiecare pixel prin scalarea ambelor seturi de date în raport cu valoarea lor maximă globală. Acest proces face seturile de date direct comparabile chiar dacă inițial au intervale diferite.

Harta rezultată oferă o imagine clară a variațiilor proprietăților solului, producției culturilor și datelor de teledetecție, permițându-vă să identificați și să evaluați rapid diferențele esențiale.

### build\_zones\_by\_intervals

```python
# intervale pentru zonare
intervals = [
    (4, 8),
    (8, 12),
    (12, 16)
]

# utilizare
zones = geopard.build_zones_by_intervals(
    layer, 
    intervals
)
```

Această funcție creează o hartă a zonelor de management prin clasificarea unui strat raster continuu în zone discrete pe baza unor intervale de valori definite de utilizator.

Fiecare interval definește o zonă, iar fiecărui pixel îi este atribuită zona în al cărei interval de valori se încadrează. Pixelii care nu se potrivesc niciunui interval sunt marcați cu -1.

Această abordare de zonare este utilizată în mod obișnuit pentru a transforma hărțile de producție, proprietățile solului sau indicii de teledetecție în zone de management aplicabile pentru aplicări cu rată variabilă.

**Cazuri de utilizare tipice**

* Crearea zonelor de management din straturi de producție, NDVI sau sol
* Pregătirea hărților de zone pentru calcule ale dozelor de nutrienți sau ale normelor de semănat
* Segmentarea parcelelor în zone omogene pentru luarea deciziilor

### calculate\_nutrient\_rate\_as\_active\_ingredients\_per\_zone

```python
# opțiuni target_nutrient
target_nutrient_option1 = 50 # număr constant
# SAU
target_nutrient_option2 = {1: 20, 2: 40} # dicționar pe zone
# SAU
target_nutrient_option3 = np.array([[1, 1], [2, 3]], dtype=float) # strat raster continuu

# opțiuni applied_nutrient_operations
applied_operations = [
    5,                                      # operation1 ca număr constant
    {1: 2, 2: 4},                           # operation2 ca dicționar pe zone
    np.array([[1, 1], [2, 3]], dtype=float) # operation3 ca strat raster continuu
]

# utilizare
rates_as_active_ingredients = geopard.calculate_nutrient_rate_as_active_ingredients_per_zone(
    zone_map, 
    target_nutrient, 
    plant_available_soil_nutrient, 
    applied_nutrient_operations = applied_operations # sau []
)
```

Această funcție calculează doza necesară de aplicare a nutrienților (substanță activă) pentru fiecare zonă de management.

Calculul se bazează pe:

* un nivel țintă de nutrienți,
* aportul de nutrienți disponibili pentru plante din sol,
* nutrienții deja aplicați prin operațiuni anterioare (gunoi de grajd, îngrășăminte, digestat etc.).

Operațiunile de aplicare a nutrienților pot fi furnizate ca valori constante, valori pe zone, straturi raster sau orice combinație a acestora. Toate intrările sunt rezolvate automat și agregate pe zonă.

În mod implicit, doza necesară este calculată ca diferența dintre nivelul țintă de nutrienți și suma aportului din sol și a nutrienților aplicați. Rezultatul este returnat ca o hartă raster în care fiecare zonă conține o doză uniformă de nutrienți.

### convert\_active\_ingredient\_and\_product

```python
# coeficient de conversie din substanță activă în produs și invers
corrected_coefficient = 1.5  # coeficient constant
# SAU
corrected_coefficient = np.array([[np.nan, 5], [np.nan, 1]], dtype=float)  # coeficienți per pixel

# utilizare
rates_as_products = geopard.convert_active_ingredient_and_product(
    layer, 
    corrected_coefficient
)
```

Această funcție convertește un strat raster între **doze de substanță activă și doze de produs** folosind un coeficient de corecție.

The `corrected_coefficient` poate fi un singur **float** (aplicat tuturor pixelilor) sau o **matrice** de coeficienți (conversie per pixel). Este utilizată de obicei pentru a transforma necesarul calculat de nutrienți (substanță activă) în doze reale de aplicare a produsului sau invers, pe baza compoziției îngrășământului sau a concentrației de nutrienți.

Conversia se aplică pixel cu pixel, păstrând structura spațială a stratului original.

**Cazuri de utilizare tipice**

* Conversia dozelor de nutrienți în doze de produs fertilizant
* Ajustarea hărților de aplicare pe baza concentrației de nutrienți
* Pregătirea hărților finale de prescripție pentru utilaje

### estimate\_texture\_class\_based\_on\_usda

```python
usda_texture = geopard.estimate_texture_class_based_on_usda(
    sand_pct_layer,
    silt_pct_layer,
    clay_pct_layer
)
```

Această funcție estimează textura solului USDA pentru fiecare pixel folosind procentele de nisip, praf și argilă.

Furnizați trei straturi raster în procente (0-100) care reprezintă fracțiile granulometrice. Rezultatul este <mark style="background-color:green;">denumiri de clase USDA precum</mark> *<mark style="background-color:green;">sand, loamy\_sand, sandy\_loam, loam, silt\_loam, sandy\_clay\_loam, clay\_loam, silty\_clay\_loam, silty\_clay sau undefined</mark>* <mark style="background-color:green;">când intrările sunt nevalide.</mark>

### estimate\_texture\_class\_based\_on\_fao\_wrb

```python
fao_wrb_texture = geopard.estimate_texture_class_based_on_fao_wrb(
    sand_pct_layer,
    silt_pct_layer,
    clay_pct_layer
)
```

Această funcție estimează clasa de textură a solului FAO/WRB (ISO 11277) pentru fiecare pixel pe baza procentelor de nisip, praf și argilă.

Furnizați trei straturi raster în procente (0-100) care reprezintă fracțiile granulometrice. Rezultatul este <mark style="background-color:green;">coduri de clasă FAO/WRB precum</mark> *<mark style="background-color:green;">S, LS, SL, L, SiL, Si, SCL, CL, SiCL, SC, SiC, C, HC sau undefined</mark>* <mark style="background-color:green;">când intrările sunt nevalide</mark>.

### calculate\_soil\_bulk\_density

```python
bulk_density = geopard.calculate_soil_bulk_density(texture_class_layer, som_pct_layer)
```

Această funcție calculează <mark style="background-color:green;">densitatea aparentă a solului (g/cm³) pe baza clasei de textură și opțional a materiei organice din sol (SOM)</mark>.

The `texture_class_layer` ar trebui să conțină nume sau coduri de clase produse de [funcția de textură USDA](#estimate_texture_class_based_on_usda) sau de [funcția de textură FAO/WRB](#estimate_texture_class_based_on_fao_wrb) menționată mai sus.

Dacă `som_pct_layer` este furnizat ca valoare procentuală, funcția ajustează densitatea aparentă folosind SOM. În caz contrar, returnează valori ale densității aparente a solului în g/cm³ asociate claselor de textură conform tabelului USDA sau FAO/WRB.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.geopard.tech/geopard-tutorials/ro/turul-produsului-aplicatia-web/analitice-bazate-pe-ecuatii/catalog-de-functii-personalizate.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
