Metadata-Version: 2.1
Name: cropwiseworker
Version: 0.0.7
Summary: The module implements functions for working with the API of the Cropwise Operations digital management platform.
Home-page: https://github.com/molevaa/cropwiseworker
Download-URL: https://github.com/molevaa/cropwiseworker/archive/refs/heads/main.zip
Author: Molev Arkhip
Author-email: jobarkhip@gmail.com
Keywords: cropwise
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: requests
Requires-Dist: pandas
Requires-Dist: shapely
Requires-Dist: simplekml

The `cropwiseworker` module is designed to work with the Cropwise Operations digital agricultural enterprise management platform API. The module allows you to interact with various platform data, facilitating the integration and automation of tasks.

## Installing
Install module using pip:

```bash
pip install cropwiseworker
```

## Module functions

### Mass download of data from the Cropwise Operations account

```python
data_downloader(endpoint, token, params=None, data_format=None, version=None)
```

- **endpoint (required)** – enter your endpoint from Cropwise Operations API documentation (https://cropwiseoperations.docs.apiary.io/)
- **token (required)** – enter your TOKEN from Cropwise Operations account
- **params** – enter your endpoint parameters using array format (default None)
- **data_format** – enter suggested data format (default pd.DataFrame(), also supported 'json')
- **version** – enter your Cropwise Operations API version using str data type (default 'v3')

### Create a massive dataset with soil test, crop rotation, agro operation and yield data for analysis named Agrimatrix

```python
agrimatrix_dataset(enterprise, token, season)
```

- **enterprise (required)** – enter a name of your enterprise
- **token (required)** – enter your TOKEN from Cropwise Operations account
- **season (required)** – enter an interested value of season using int data type

### Create a kml-file with several orchard rows inside of quarter kml-file

```python
create_orchard_rows(file_path, number_of_rows, start_side='right', crop=None, download_directory=None)
```

- **file_path (required)** – enter a directory of your quarter with row direction line in KML format using str data type. The row direction line should have a name 'row_direction_{quarter name}'
- **number_of_rows (required)** – enter the relevant number of orchard rows to create using int data type
- **start_side** – select the side from which you want to start numbering rows relative to the direction line (standard = 'right', also could be 'left')
- **crop** – enter a name of crop which grows in your quarter using str data type (standard = None)
- **download_directory** – enter a directory to download result file using str data type (standard = None)

### Get a data with last changed objects within certain period
```python
fetch_changes(endpoint, token, start_date, end_date, step_days=3, output_format='dataframe')
```

- **endpoint (required)** – enter your endpoint from Cropwise Operations API documentation (https://cropwiseoperations.docs.apiary.io/)
- **token (required)** – enter your TOKEN from Cropwise Operations account
- **start_date (required)** – enter a date which from the data should start downloading in format 'YYYY-MM-DD'
- **end_date (required)** – enter a date which till the data should start downloading in format 'YYYY-MM-DD'
- **step_days** – enter a number of days between start_date and every next date 
- ** output_format** – enter a format name for output data (standard – pd.DataFrame, also may be 'json')

## Workflow examples

```python
import cropwiseworker as cw

token = 'YOUR_TOKEN'

params = {'created_at_gt_eq':'2023-01-01'}

fields = cw.data_downloader('fields', token=token, params=params)
print(fields)

my_2023_analysis = cw.agrimatrix_dataset('YOUR_ENTERPRISE_NAME', token=token, season=2023)
print(my_2023_analysis)

cw.create_orchard_rows('path/to/your/file.kml', 'QuarterName', 50, direction='south_north', 'Apple', 'path/to/download/directory')

field_changes = cw.fetch_changes('fields', token, '2024-01-01', '2024-01-07', step_days=1, output_format='json')
print(field_changes)
```

## License
This package is distributed under the Apache License 2.0.


# Changelog

All noticeable changes to this project will be documented in this file.

The format is based on [Keep a Changelog] (https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning] (https://semver.org/spec/v2.0.0.html).

## [0.0.7] – 2024-07-25

### Changed
– The README.md
– The algorithm of function `create_orchard_rows()` was changed. Added the opportunity to create rows in individual direction using the LineString of row direction in KML-file


## [0.0.6] – 2024-07-16

### Added 
- Added a new function `fetch_changes()` for mass loading of changed object from Cropwise Operations.

### Changed
– The README.md

### Fixed
– The bug with previous version downloading.

## [0.0.5] – 2024-07-08

### Added 
- Added a new function `create_orchard_rows()` for geofencing.

## [0.0.2] - 2024-04-12

### Added
- The project was created.
- Added the function `data_downloader()` for mass loading of data on the Cropwise Operations API.
- Added the function `agrimatrix_datase()` for creating an Agrimatrix report.
- Integration with the external Cropwise Operations API.

