semvec/pypi-packages huggingface dataset:
futility 0.3.4
various utilities for unpacking and analyzing .fits files
Requires Python: >=3.6



ok so here's the rundown on all this stuff:

unpack_folder.py:
    - can unpack and relocate an entire folder of files compressed with fpack
    - deals with all the necessary renaming as well as deletes the compressed
     versions
    - usage: python unpack_folder.py infolderpath outfolderpath
    - if no outfolderpath is given, it will unpack them in infolder
    - paths can be with or without slash at the end

noise_info.py
    - analyzes background noise in chunks of arbitrary size(default=15 pixels)
    - returns a median/mean pixel value, matrix of each chunk's mean/median and a matrix of
     their standard deviations 
    - can make plot of means/medians vs stds, and 3d plot of each chunk's mean/median
    - has a rather extensive ui including multiple, gradually increasing in computational 
    overkill, methods of file searching for the lazy
    - will also automatically display when run in X window 
    Usage: python noise_info path/to/file 

fim.py
    - does everything noise_info can
    - everything you need to operate/change it is in default.cfg, just change the values and rerun
    - 

paths.py
    - stabilizes pathing accross accounts and machines
    - please add and use it as much as possible
    - but also dont change anything already there
    - gives you access to all path names pre-stored under variables

difference.py
    - this was a bid of a pipedream longshot from the start
    - just finds difference between fits files from SExtractor's perspective
    - good use of k-d tree if you wanna use the code for similar projects

flats_noise.py
    - i barely remember making this one
    - from when i was going insane trying to figure out how to denoise and renoise images
    - statistical nonsense


get_sources.py
    - SExtractor script, hardcoded to draw from my(Benny) own settings

    

gaussian.py
    - adds a pixel offset but radially symmetric, gaussian "star" at a randomized point around 
     a specific point(typically galaxies)
    - the offset adds surprisingly accurate radial irregularities
    - uniformly randomizes sigma of gaussian to be between siga and sigb
    - uniformly randomizes amp of gaussian
    - also randomizes placement around specified point (done in radial coordinate
     and transformed back to cartesian)
    - used by gym_teacher.py

gym_teacher.py
    - named gym teacher because it comes up with "games" to train the ai
    - takes in a folder of unpacked fits files and injects randomized new stars 
     into them around both the most galaxylike galaxies 
    - if there arent enough "galaxy-like" galaxies, it starts to pick random spots to fill its ranks
    - for each file it records name, star placements, star sigma, star amp, and star array size for
     each file in folder under starcoords.xml
yolosplitter 0.5.0.0
Tool to Create,Modify YOLO dataset and much more...
Requires Python: >=3.6
Keywords: yolo splitter, split datasets, yolo split, yolos split dataset, yolo, yolosplitter, yolo-splitter

# yolo-splitter
Tool to create,modify YOLO dataset.

## Installation
```bash
pip install yolosplitter
```

## Uses
```python
from yolosplitter import YoloSplitter

ys = YoloSplitter(imgFormat=['.jpg', '.jpeg', '.png'], labelFormat=['.txt'] )

# If you have yolo-format dataset already on the system
df = ys.from_yolo_dir(input_dir="yolo_dataset",ratio=(0.7,0.2,0.1),return_df=True)

# If you have mixed Images and Labels in the same directory
df = ys.from_mixed_dir(input_dir="mydataset",ratio=(0.7,0.2,0.1),return_df=True)

# To see train/test/val split size, total error files, all class names from annotation files
ys.info()

# !!! changed show_dataframe to get_dataframe()
# to see dataframe
ys.get_dataframe()
```
![2024-01-30_08-19](https://github.com/sandeshkharat87/yolo-splitter/assets/47347413/b2475cde-cbb7-410f-a4df-dd2622698ee1)



```python
ys.save_split(output_dir="potholes")
```

```bash
Saving New split in 'potholes' dir
100%|██████████| 118/118 [00:00<00:00, 1352.79it/s]
```

```python
# Use ys.show_show_errors  to show filename which have errors
ys.show_errors()

# Use ys.show_dataframe to see dataframe created on the dataset
ys.get_dataframe()

# To see train/test/val split size, total error files, all class names from annotation files
ys.info()
```


### Input Directory
```
MyDataset/
├── 02.png
├── 02.txt
├── 03.png
├── 03.txt
├── 04.png
├── 04.txt
├── 05.png
├── 05.txt
├── 06.png
├── 06.txt
├── 07.png
├── 07.txt
├── 08.png
├── 08.txt
├── 09.png
├── 09.txt
├── 10.png
├── 10.txt
├── 11.png
└── 11.txt
```

### Output Directory
```
MyDataset-splitted/
├── data.yaml
├── train
│   ├── images
│   │   ├── 03.png
│   │   ├── 04.png
│   │   ├── 05.png
│   │   ├── 07.png
│   │   ├── 08.png
│   │   ├── 09.png
│   │   └── 10.png
│   └── labels
│       ├── 03.txt
│       ├── 04.txt
│       ├── 05.txt
│       ├── 07.txt
│       ├── 08.txt
│       ├── 09.txt
│       └── 10.txt
└── val
    ├── images
    │   ├── 02.png
    │   ├── 06.png
    │   └── 11.png
    └── labels
        ├── 02.txt
        ├── 06.txt
        └── 11.txt
```
# Change Log
## Stable

* 2024-08-26 version 5.0.0
    * Optimize code and speedup execution. Thanks for incredible work [https://github.com/MarcelloCuoghi]

* 2023-04-25 version 4.9.1
    * Fixed. "Having a newline at the end of the file causes an error:
      ValueError('invalid literal for int() with base 10: ''')". Thanks to [https://github.com/Maxvgrad] for finding bug.

* 2023-01-30 version 4.9
    * Fixed Fixes Annotation Parse Error. Thanks to [https://github.com/Xiteed] 
       
* 2023-12-20 version 4.8
    * Changed yaml file style

* 2023-12-19 version 4.7
    * Fix output dir of `val` to `valid` thanks to [https://github.com/AndreasFridh]
    * Added `ys.info()` To see train/test/val split size, total error files, all class names from annotation files
    * Changed `ys.show_dataframe` to `ys.get_dataframe()`
    * small bug fixes