panomosity 0.1.39 → 0.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +20 -13
- data/lib/panomosity/runner.rb +70 -3
- data/lib/panomosity/version.rb +1 -1
- data/lib/panomosity/xlsx_writer.rb +40 -0
- data/panomosity.gemspec +2 -0
- metadata +17 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 508c47f3caa59487c8e85f4787044dd174b9e43a63fce0ee0ecfc210c88ecef7
|
|
4
|
+
data.tar.gz: d7e9a8a263379d90f984746e0b3f2215943322418c59ce4f9f25012563fbce82
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 73a953315be6abba6b26a8371dbf5f0ad131fbae1733b59c12e243d6e31e531a2b9bf3e908b2d5b5d03423ef3006347dd15be55dafcd38c019735e57ea998ad4
|
|
7
|
+
data.tar.gz: 380b7ac01f1306116cbdc2c5982760f2495ca107321a6564bfca266b449e6c631ec8752b40228e12b8ffb8127f8f3305c3451a93a5ba2a084a91f3bd838ad30d
|
data/Gemfile.lock
CHANGED
|
@@ -1,31 +1,38 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
panomosity (0.1.
|
|
4
|
+
panomosity (0.1.39)
|
|
5
|
+
write_xlsx
|
|
5
6
|
|
|
6
7
|
GEM
|
|
7
8
|
remote: https://rubygems.org/
|
|
8
9
|
specs:
|
|
9
10
|
coderay (1.1.2)
|
|
10
|
-
diff-lcs (1.
|
|
11
|
+
diff-lcs (1.4.4)
|
|
11
12
|
method_source (0.9.0)
|
|
12
13
|
pry (0.11.3)
|
|
13
14
|
coderay (~> 1.1.0)
|
|
14
15
|
method_source (~> 0.9.0)
|
|
15
16
|
rake (10.5.0)
|
|
16
|
-
rspec (3.
|
|
17
|
-
rspec-core (~> 3.
|
|
18
|
-
rspec-expectations (~> 3.
|
|
19
|
-
rspec-mocks (~> 3.
|
|
20
|
-
rspec-core (3.
|
|
21
|
-
rspec-support (~> 3.
|
|
22
|
-
rspec-expectations (3.
|
|
17
|
+
rspec (3.9.0)
|
|
18
|
+
rspec-core (~> 3.9.0)
|
|
19
|
+
rspec-expectations (~> 3.9.0)
|
|
20
|
+
rspec-mocks (~> 3.9.0)
|
|
21
|
+
rspec-core (3.9.2)
|
|
22
|
+
rspec-support (~> 3.9.3)
|
|
23
|
+
rspec-expectations (3.9.2)
|
|
23
24
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
24
|
-
rspec-support (~> 3.
|
|
25
|
-
rspec-mocks (3.
|
|
25
|
+
rspec-support (~> 3.9.0)
|
|
26
|
+
rspec-mocks (3.9.1)
|
|
26
27
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
27
|
-
rspec-support (~> 3.
|
|
28
|
-
rspec-support (3.
|
|
28
|
+
rspec-support (~> 3.9.0)
|
|
29
|
+
rspec-support (3.9.3)
|
|
30
|
+
rubyzip (2.3.0)
|
|
31
|
+
write_xlsx (0.85.9)
|
|
32
|
+
rubyzip (>= 1.0.0)
|
|
33
|
+
zip-zip
|
|
34
|
+
zip-zip (0.3)
|
|
35
|
+
rubyzip (>= 1.0.0)
|
|
29
36
|
|
|
30
37
|
PLATFORMS
|
|
31
38
|
ruby
|
data/lib/panomosity/runner.rb
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
require 'logger'
|
|
2
2
|
require 'json'
|
|
3
3
|
require 'csv'
|
|
4
|
+
require 'panomosity/xlsx_writer'
|
|
4
5
|
|
|
5
6
|
module Panomosity
|
|
6
7
|
class Runner
|
|
7
8
|
include Panomosity::Utils
|
|
9
|
+
include Panomosity::XLSXWriter
|
|
8
10
|
|
|
9
11
|
attr_reader :logger
|
|
10
12
|
|
|
11
|
-
AVAILABLE_COMMANDS = %w
|
|
13
|
+
AVAILABLE_COMMANDS = %w[
|
|
12
14
|
add_calibration_flag
|
|
13
15
|
apply_calibration_values
|
|
14
16
|
check_position_changes
|
|
@@ -20,6 +22,7 @@ module Panomosity
|
|
|
20
22
|
crop_centers
|
|
21
23
|
diagnose
|
|
22
24
|
export_control_point_csv
|
|
25
|
+
export_panorama_attributes_to_csv
|
|
23
26
|
fix_conversion_errors
|
|
24
27
|
fix_unconnected_image_pairs
|
|
25
28
|
generate_border_line_control_points
|
|
@@ -34,7 +37,7 @@ module Panomosity
|
|
|
34
37
|
prepare_for_pr0ntools
|
|
35
38
|
remove_anchor_variables
|
|
36
39
|
standardize_roll
|
|
37
|
-
|
|
40
|
+
]
|
|
38
41
|
|
|
39
42
|
def initialize(options)
|
|
40
43
|
@options = options
|
|
@@ -299,7 +302,7 @@ module Panomosity
|
|
|
299
302
|
panorama.calculate_neighborhoods
|
|
300
303
|
|
|
301
304
|
filename = 'control_points.csv'
|
|
302
|
-
headers = %w
|
|
305
|
+
headers = %w[image_1_name image_2_name image_1_id image_2_id type width height d1 e1 d2 e2 x1 y1 x2 y2 rx ry r]
|
|
303
306
|
CSV.open(filename, 'w+') do |csv|
|
|
304
307
|
csv << headers
|
|
305
308
|
panorama.control_points.each do |cp|
|
|
@@ -490,6 +493,70 @@ module Panomosity
|
|
|
490
493
|
puts panorama.attributes.to_json
|
|
491
494
|
end
|
|
492
495
|
|
|
496
|
+
def export_panorama_attributes_to_csv
|
|
497
|
+
panorama = Panorama.new(@input_file, @options)
|
|
498
|
+
panorama.calculate_neighborhoods
|
|
499
|
+
|
|
500
|
+
logger.info "Making #{Dir.pwd}/#{@input}_attributes Directory"
|
|
501
|
+
|
|
502
|
+
dir = "#{Dir.pwd}/#{@input}_attributes"
|
|
503
|
+
Dir.mkdir(dir) unless File.exists?(dir)
|
|
504
|
+
|
|
505
|
+
logger.info "Done. Moving into #{dir} Directory"
|
|
506
|
+
|
|
507
|
+
Dir.chdir "#{@input}_attributes"
|
|
508
|
+
|
|
509
|
+
logger.info "Making control_points.csv"
|
|
510
|
+
|
|
511
|
+
filename = 'control_points.csv'
|
|
512
|
+
headers = %w[image_1_name image_2_name image_1_id image_2_id type width height d1 e1 d2 e2 x1 y1 x2 y2 rx ry r]
|
|
513
|
+
CSV.open(filename, 'w+') do |csv|
|
|
514
|
+
csv << headers
|
|
515
|
+
panorama.control_points.each do |cp|
|
|
516
|
+
pair = Pair.all.find { |p| p.control_points.include?(cp) }
|
|
517
|
+
csv << [cp.i1.name, cp.i2.name, cp.i1.id, cp.i2.id, pair.type, cp.i1.w, cp.i1.h, cp.i1.d, cp.i1.e,
|
|
518
|
+
cp.i2.d, cp.i2.e, cp.x1, cp.y1, cp.x2, cp.y2, cp.px, cp.py, cp.pdist]
|
|
519
|
+
end
|
|
520
|
+
end
|
|
521
|
+
|
|
522
|
+
logger.info "Done. Check for #{filename}"
|
|
523
|
+
|
|
524
|
+
attributes = panorama.attributes
|
|
525
|
+
|
|
526
|
+
logger.info "Making cp_pairs.csv"
|
|
527
|
+
|
|
528
|
+
filename = 'cp_pairs.csv'
|
|
529
|
+
headers = attributes[:pairs].first.keys
|
|
530
|
+
CSV.open(filename,"w") do |csv|
|
|
531
|
+
csv << headers
|
|
532
|
+
attributes[:pairs].each do |pair|
|
|
533
|
+
csv << pair.values
|
|
534
|
+
end
|
|
535
|
+
end
|
|
536
|
+
|
|
537
|
+
logger.info "Done. Check for #{filename}"
|
|
538
|
+
|
|
539
|
+
logger.info "Making neighborhood_pairs.csv"
|
|
540
|
+
|
|
541
|
+
filename = 'neighborhood_pairs.csv'
|
|
542
|
+
headers = ['data_type', attributes[:similar_neighborhoods].first.keys].flatten
|
|
543
|
+
CSV.open(filename,'w') do |csv|
|
|
544
|
+
csv << headers
|
|
545
|
+
attributes[:similar_neighborhoods].each do |neighborhood|
|
|
546
|
+
csv << ['similar_neighborhoods', neighborhood.values].flatten(1)
|
|
547
|
+
end
|
|
548
|
+
attributes[:neighborhoods_by_similar_neighborhood].each do |neighborhood|
|
|
549
|
+
csv << ['neighborhoods_by_similar_neighborhood', neighborhood.values].flatten(1)
|
|
550
|
+
end
|
|
551
|
+
end
|
|
552
|
+
|
|
553
|
+
logger.info "Done. Check for #{filename}"
|
|
554
|
+
|
|
555
|
+
csv_to_xlsx(['control_points.csv', 'cp_pairs.csv', 'neighborhood_pairs.csv'], 'attributes')
|
|
556
|
+
|
|
557
|
+
Dir.chdir '..'
|
|
558
|
+
end
|
|
559
|
+
|
|
493
560
|
def import_control_point_csv
|
|
494
561
|
logger.info 'importing control point csv'
|
|
495
562
|
panorama = Panorama.new(@input_file, @options)
|
data/lib/panomosity/version.rb
CHANGED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'write_xlsx'
|
|
2
|
+
|
|
3
|
+
module Panomosity
|
|
4
|
+
module XLSXWriter
|
|
5
|
+
SEPERATE_CSV_COLUMNS = /,(?![^\[]*\])/.freeze
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def csv_to_xlsx(input_files, output_file)
|
|
9
|
+
input_files = Array(input_files)
|
|
10
|
+
|
|
11
|
+
logger.info "Creating #{output_file}.xlsx"
|
|
12
|
+
|
|
13
|
+
workbook = WriteXLSX.new("#{output_file}.xlsx")
|
|
14
|
+
|
|
15
|
+
input_files.each do |csv|
|
|
16
|
+
logger.info "Creating #{csv} Worksheet"
|
|
17
|
+
|
|
18
|
+
worksheet = workbook.add_worksheet(csv)
|
|
19
|
+
|
|
20
|
+
seperate_csv_columns = /,(?![^\[]*\])/
|
|
21
|
+
|
|
22
|
+
File.open(csv, "r") do |f|
|
|
23
|
+
f.each_line do |rows|
|
|
24
|
+
cells = rows.split(SEPERATE_CSV_COLUMNS)
|
|
25
|
+
|
|
26
|
+
cells.each_with_index do |cell, column|
|
|
27
|
+
row = f.lineno - 1
|
|
28
|
+
data = cell.tr_s('"', '').strip
|
|
29
|
+
worksheet.write(row, column, data)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
workbook.close
|
|
36
|
+
|
|
37
|
+
logger.info "Done. Check for #{output_file}.xlsx"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
data/panomosity.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: panomosity
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.40
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Oliver Garcia
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-10-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '3.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: write_xlsx
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
55
69
|
description: Custom scripts to help with PTO parsing and different strategies.
|
|
56
70
|
email:
|
|
57
71
|
- ogarci5@gmail.com
|
|
@@ -91,6 +105,7 @@ files:
|
|
|
91
105
|
- lib/panomosity/runner.rb
|
|
92
106
|
- lib/panomosity/utils.rb
|
|
93
107
|
- lib/panomosity/version.rb
|
|
108
|
+
- lib/panomosity/xlsx_writer.rb
|
|
94
109
|
- panomosity.gemspec
|
|
95
110
|
homepage: https://github.com/elevatesystems/panomosity
|
|
96
111
|
licenses:
|