Skip to content

『Software Engineering Project 2021, Semester 2 of the Uni of Adelaide - Block Model Compression Algorithm』. Our team solved the block model compression problems for Maptek Titian using the specified compression algorithms.

Notifications You must be signed in to change notification settings

boyleerock/Block-Model-Compression-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Block-Model-Compression-Algorithm by Team-Lucky-Seven-Blocks7

--- Software Engineering Project 2021, Semester 2 ---

The document software_architecture.pdf in the Documentation directory contains an overview of the software architecture and the algorithms developed.

Fast CPU / GPU Implementation

A fast CPU and GPU implementation was underway when this project stopped. The Numba package was used. You can find all the changes in the port-to-numba branch

This project is presented as a gamified design and implementation challenge...

  1. We are required to develop the program which can take uncompressed input data on standard input and produce compressed output data on standard output with no loss.

  2. And submit either an .exe file or a Python script to a verification service: MAPTEK TITAN.

  3. The verification service will execute our code and score it compared to all the other entries received on processing speed and compression performance.

  • More description of this project: Click Here and 💾 Google Drive from tutor
  • Agile (Scrum) Project Management: Click Here.
  • The two datasets and validator to test and validate our compression tool (the_intro_one & the_fast_one)
  • And the other two datasets released on 7th Sep (the_stratal_one_42000000_14x10x12 & the_big_one_987417600_8x8x5)
  • Command->> python runner.py -s -v < path to your python or executable file > < test data file path >

Development Environment

If using a version of Anaconda that matches what is used on Titan, then no extra steps are needed. If you are not using that installation of Python, then keep reading.

Python Virtual Environments are used to keep all the dependencies of this project self contained and not mixed up with the system python libraries.

First make sure you are in the Code directory.

Then set up the Python Virtual environment:

python3 -m venv .venv

Then activate the environment:

For Linux/Mac:

$ source .venv/bin/activate

For Windows:

$ .venv\Scripts\activate

The first time you start the virtual environment, install all the development dependencies

$ pip install -r requirements.txt

When you are finished developing, deactivate the environment

$ deactivate

Static Analysis

Static analysis tools should be run on the code before committing and especially before merging. First the flake8 command should be used to check coding style.

$ flake8 directory/with/code

Once all those issues are resolved, run the type checker pytype

$ pytype directory/with/code

This will infer and check that the types of variables are passed around correctly. If possible try to eliminate these errors. However if the code runs correctly, you don't need to make large changes to accomodate this tool.

Members in Team Lucky Seven (Blocks7):

Name Student ID School E-mail Snapshot drafting
Po-Yi Lee a1806297 [email protected] 1.1 & 5.2
Hechen Wang a1786785 [email protected] 1.2
Yang Lu a1782685 [email protected] 2.1
Yuanpeng Liu a1784375 [email protected] 2.2
Kaiyang Xue a1784184 [email protected] 3.1
Xiaoman Li a1804817 [email protected] 3.2
Liuyang Yun a1811518 [email protected] 4.1
Jiaping Qi a1797683 [email protected] 4.2
Karl Asenstorfer a1162576 [email protected] 5.1

Secheduled Scrum Masters:

Sprint Name Student ID
1 Po-Yi Lee a1806297
2 Yuanpeng Liu a1784375
3 Karl Asenstorfer a1162576
4 Xiaoman Li a1804817
5 Kaiyang Xue a1784184

Shared Assignment File:

WEEK Snapshot Drafting
Week 2 Snapshot0 & Initial report Team
Week 3 Snapshot1.1 Po-Yi Lee
Week 4 Snapshot1.2 Hechen Wang
Week 5 Snapshot2.1 Yang Lu
Week 6 Snapshot2.2 Yuanpeng Liu
Week 7 Snapshot3.1 Kaiyang Xue
Week 8 Snapshot3.2 Xiaoman Li
Week 9 Snapshot4.1 Liuyang Yun
Week 10 Snapshot4.2 Jiaping Qi
Week 11 Snapshot5.1 Karl Asenstorfer
Week 12 Snapshot5.2 Po-Yi Lee

Keep in touch Via:

✨Slack Channel: blocks7

About

『Software Engineering Project 2021, Semester 2 of the Uni of Adelaide - Block Model Compression Algorithm』. Our team solved the block model compression problems for Maptek Titian using the specified compression algorithms.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages