Metadata-Version: 2.1
Name: coreframe
Version: 1.0.3
Summary: COmmon REsearch FRAMEwork
Author: MetaEarth Lab
Author-email: hyungjun@gmail.com
Keywords: python
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: h5py

![test results](https://github.com/kimlab/cf/actions/workflows/test.yml/badge.svg)

# COREFRAME

**COmmon REsearch FRAMEwork** - A Python framework for Earth science research and data analysis.

## Overview

COREFRAME is a specialized Python framework designed for Earth science research, providing robust tools for handling complex multidimensional datasets in atmospheric, oceanic, and climate sciences.

## Features

### CoreArray
- Coordinate-aware array operations based on NumPy
- Intelligent dimension handling
- Seamless integration with NumPy's universal functions
- Support for labeled dimensions and metadata

### HDF5 Integration
- High-level interface for HDF5 files
- Automatic coordinate system management
- Advanced time dimension handling with calendar support
- Comprehensive metadata preservation

### Performance Optimization
- Result caching system for computationally intensive operations
- Parallel processing capabilities with configurable worker pools
- Compressed storage options
- Hash-based cache management

### Data Analysis Tools
- Efficient time-series operations
- Support for various calendar systems
- Area-based spatial calculations
- Geographical coordinate support
- Gridded data handling

## Installation

```bash
pip install coreframe
```

### Requirements
- Python 3.6 or higher
- NumPy
- h5py

## Quick Start

```python
import numpy as np
from coreframe import CoreArray

# Create a sample dataset
data = np.random.rand(500, 100, 100)
time = np.arange('2001-01-01', '2002-05-15', dtype='datetime64[D]')
lat = np.linspace(-90, 90, 100)
lon = np.linspace(-180, 180, 100)

# Create CoreArray with coordinates
coords = {
    'time': time,
    'lat': lat,
    'lon': lon
}
arr = CoreArray(data, coords)

# Perform operations
result = arr.apply_by_time("time", "1M", np.max, axis=0)
```

## Key Use Cases
- Climate data analysis
- Atmospheric science research
- Oceanographic studies
- Earth system modeling
- Geospatial data processing
- Environmental time series analysis

## Contributing

We welcome contributions! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Support

For support, please open an issue on the GitHub repository.

## Authors

Developed and maintained by the MetaEarth Lab.

---

For more information, please contact: hyungjun@gmail.com
