panomosity 0.1.39 → 0.1.40
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|