Skip to content

Commit 5bad046

Browse files
authored
Merge pull request #1887 from NREL/mj_fwall_bugfix
Manual J foundation wall bugfix
2 parents 914d27c + 858e244 commit 5bad046

5 files changed

Lines changed: 122 additions & 37 deletions

File tree

HPXMLtoOpenStudio/measure.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>hpxm_lto_openstudio</name>
55
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
6-
<version_id>b20ae61b-bf29-4be9-8e25-a44b3b12c232</version_id>
7-
<version_modified>2024-11-16T00:20:48Z</version_modified>
6+
<version_id>531c1027-0d75-4343-a8ce-6717ad2b9924</version_id>
7+
<version_modified>2024-11-16T04:46:12Z</version_modified>
88
<xml_checksum>D8922A73</xml_checksum>
99
<class_name>HPXMLtoOpenStudio</class_name>
1010
<display_name>HPXML to OpenStudio Translator</display_name>
@@ -393,7 +393,7 @@
393393
<filename>hvac_sizing.rb</filename>
394394
<filetype>rb</filetype>
395395
<usage_type>resource</usage_type>
396-
<checksum>FEB17D7B</checksum>
396+
<checksum>C6F9CE12</checksum>
397397
</file>
398398
<file>
399399
<filename>internal_gains.rb</filename>
@@ -423,7 +423,7 @@
423423
<filename>math.rb</filename>
424424
<filetype>rb</filetype>
425425
<usage_type>resource</usage_type>
426-
<checksum>FEB72476</checksum>
426+
<checksum>CE6D107B</checksum>
427427
</file>
428428
<file>
429429
<filename>meta_measure.rb</filename>
@@ -693,7 +693,7 @@
693693
<filename>test_hvac_sizing.rb</filename>
694694
<filetype>rb</filetype>
695695
<usage_type>test</usage_type>
696-
<checksum>561E6631</checksum>
696+
<checksum>E1BC3865</checksum>
697697
</file>
698698
<file>
699699
<filename>test_lighting.rb</filename>

HPXMLtoOpenStudio/resources/hvac_sizing.rb

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4795,15 +4795,36 @@ def self.get_foundation_wall_above_grade_ufactor(foundation_wall, include_insula
47954795

47964796
assembly_r = Material.FoundationWallMaterial(foundation_wall.type, foundation_wall.thickness).rvalue
47974797
assembly_r += Material.AirFilmVertical.rvalue + Material.AirFilmOutside.rvalue
4798-
if include_insulation_layers
4799-
if foundation_wall.insulation_interior_distance_to_top == 0 && foundation_wall.insulation_interior_distance_to_bottom > 0
4800-
assembly_r += foundation_wall.insulation_interior_r_value
4801-
end
4802-
if foundation_wall.insulation_exterior_distance_to_top == 0 && foundation_wall.insulation_exterior_distance_to_bottom > 0
4803-
assembly_r += foundation_wall.insulation_exterior_r_value
4804-
end
4798+
if not include_insulation_layers
4799+
return 1.0 / assembly_r
4800+
end
4801+
4802+
ag_depth = foundation_wall.height - foundation_wall.depth_below_grade
4803+
wall_ins_dist_bottom_to_grade_int = ag_depth - foundation_wall.insulation_interior_distance_to_bottom
4804+
wall_ins_dist_top_to_grade_int = ag_depth - foundation_wall.insulation_interior_distance_to_top
4805+
wall_ins_dist_bottom_to_grade_ext = ag_depth - foundation_wall.insulation_exterior_distance_to_bottom
4806+
wall_ins_dist_top_to_grade_ext = ag_depth - foundation_wall.insulation_exterior_distance_to_top
4807+
# Perform calculation for each 1ft bin of above grade depth
4808+
sum_u_wall = 0.0
4809+
for distance_to_grade in 1..ag_depth.ceil
4810+
r_wall = assembly_r
4811+
4812+
bin_dist_top_to_grade = [distance_to_grade, ag_depth].min
4813+
bin_dist_bottom_to_grade = distance_to_grade - 1
4814+
bin_size = bin_dist_top_to_grade - bin_dist_bottom_to_grade # Last bin may be less than 1 ft
4815+
4816+
# Add interior insulation R-value at this depth?
4817+
bin_frac_insulated_int = MathTools.overlap(bin_dist_bottom_to_grade, bin_dist_top_to_grade, wall_ins_dist_bottom_to_grade_int, wall_ins_dist_top_to_grade_int) / bin_size
4818+
r_wall += foundation_wall.insulation_interior_r_value * bin_frac_insulated_int # Interior insulation at this depth, add R-value
4819+
4820+
# Add exterior insulation R-value at this depth?
4821+
bin_frac_insulated_ext = MathTools.overlap(bin_dist_bottom_to_grade, bin_dist_top_to_grade, wall_ins_dist_bottom_to_grade_ext, wall_ins_dist_top_to_grade_ext) / bin_size
4822+
r_wall += foundation_wall.insulation_exterior_r_value * bin_frac_insulated_ext # Exterior insulation at this depth, add R-value
4823+
4824+
sum_u_wall += (1.0 / r_wall) * bin_size
48054825
end
4806-
return 1.0 / assembly_r
4826+
u_wall = sum_u_wall / ag_depth
4827+
return u_wall
48074828
end
48084829

48094830
# Calculates the foundation wall below grade effective U-factor according to Manual J Section A12-4.
@@ -4832,22 +4853,27 @@ def self.get_foundation_wall_below_grade_ufactor(foundation_wall, include_soil,
48324853

48334854
# Perform calculation for each 1ft bin of below grade depth
48344855
sum_u_wall = 0.0
4835-
wall_depth_above_grade = foundation_wall.depth_below_grade.ceil
4836-
for distance_to_grade in 1..wall_depth_above_grade
4856+
for distance_to_grade in 1..foundation_wall.depth_below_grade.ceil
48374857
# Calculate R-wall at this depth
48384858
r_wall = wall_constr_rvalue - Material.AirFilmOutside.rvalue
4839-
bin_distance_to_grade = distance_to_grade - 0.5 # Use e.g. 2.5 ft for the 2ft-3ft bin
4840-
r_soil = (Math::PI * bin_distance_to_grade / 2.0) / ground_conductivity
4841-
if (distance_to_grade > wall_ins_dist_top_to_grade_int) && (distance_to_grade <= wall_ins_dist_bottom_to_grade_int)
4842-
r_wall += wall_ins_rvalue_int # Interior insulation at this depth, add R-value
4843-
end
4844-
if (distance_to_grade > wall_ins_dist_top_to_grade_ext) && (distance_to_grade <= wall_ins_dist_bottom_to_grade_ext)
4845-
r_wall += wall_ins_rvalue_ext # Exterior insulation at this depth, add R-value
4846-
end
4859+
bin_dist_top_to_grade = distance_to_grade - 1
4860+
bin_dist_bottom_to_grade = [distance_to_grade, foundation_wall.depth_below_grade].min
4861+
bin_size = bin_dist_bottom_to_grade - bin_dist_top_to_grade # Last bin may be less than 1 ft
4862+
bin_avg_dist_to_grade = (bin_dist_top_to_grade + bin_dist_bottom_to_grade) / 2.0
4863+
4864+
# Add interior insulation R-value at this depth?
4865+
bin_frac_insulated_int = MathTools.overlap(bin_dist_top_to_grade, bin_dist_bottom_to_grade, wall_ins_dist_top_to_grade_int, wall_ins_dist_bottom_to_grade_int) / bin_size
4866+
r_wall += wall_ins_rvalue_int * bin_frac_insulated_int
4867+
4868+
# Add exterior insulation R-value at this depth?
4869+
bin_frac_insulated_ext = MathTools.overlap(bin_dist_top_to_grade, bin_dist_bottom_to_grade, wall_ins_dist_top_to_grade_ext, wall_ins_dist_bottom_to_grade_ext) / bin_size
4870+
r_wall += wall_ins_rvalue_ext * bin_frac_insulated_ext # Exterior insulation at this depth, add R-value
4871+
48474872
if include_soil
4848-
sum_u_wall += 1.0 / (r_soil + r_wall)
4873+
r_soil = (Math::PI * bin_avg_dist_to_grade / 2.0) / ground_conductivity
4874+
sum_u_wall += (1.0 / (r_soil + r_wall)) * bin_size
48494875
else
4850-
sum_u_wall += 1.0 / r_wall
4876+
sum_u_wall += (1.0 / r_wall) * bin_size
48514877
end
48524878
end
48534879
u_wall = sum_u_wall / foundation_wall.depth_below_grade

HPXMLtoOpenStudio/resources/math.rb

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def self.interp4(x, y, x1, x2, y1, y2, fx1y1, fx1y2, fx2y1, fx2y2)
3434
+ (fx2y2 / ((x2 - x1) * (y2 - y1))) * (x - x1) * (y - y1)
3535
end
3636

37-
# Calculate the result of a biquadratic polynomial with independent variables.
37+
# Calculates the result of a biquadratic polynomial with independent variables.
3838
# x and y, and a list of coefficients, c:
3939
#
4040
# z = c[1] + c[2]*x + c[3]*x**2 + c[4]*y + c[5]*y**2 + c[6]*x*y
@@ -52,7 +52,7 @@ def self.biquadratic(x, y, c)
5252
return z
5353
end
5454

55-
# Calculate the result of a quadratic polynomial with independent variable.
55+
# Calculates the result of a quadratic polynomial with independent variable.
5656
# x and a list of coefficients, c:
5757
#
5858
# y = c[1] + c[2]*x + c[3]*x**2
@@ -70,9 +70,9 @@ def self.quadratic(x, c)
7070
return y
7171
end
7272

73-
# Calculate the result of a bicubic polynomial with independent variables.
73+
# Calculates the result of a bicubic polynomial with independent variables.
7474
# x and y, and a list of coefficients, c:
75-
75+
#
7676
# z = c[1] + c[2]*x + c[3]*y + c[4]*x**2 + c[5]*x*y + c[6]*y**2 + \
7777
# c[7]*x**3 + c[8]*y*x**2 + c[9]*x*y**2 + c[10]*y**3
7878
#
@@ -91,6 +91,17 @@ def self.bicubic(x, y, c)
9191
return z
9292
end
9393

94+
# Calculates the overlap distance of two 1D line segments.
95+
#
96+
# @param min1 [Double] min value of line 1
97+
# @param max1 [Double] max value of line 1
98+
# @param min2 [Double] min value of line 2
99+
# @param max2 [Double] max value of line 2
100+
# @return [Double] overlap distance
101+
def self.overlap(min1, max1, min2, max2)
102+
return [0.0, [max1, max2].min - [min1, min2].max].max
103+
end
104+
94105
# Determine if a guess is within tolerance for convergence.
95106
# If not, output a new guess using the Newton-Raphson method.
96107
#

HPXMLtoOpenStudio/tests/test_hvac_sizing.rb

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,6 +1678,54 @@ def test_manual_j_basement_wall_below_grade_ufactor
16781678
end
16791679
end
16801680

1681+
def test_foundation_wall_non_integer_values
1682+
tol = 0.01 # 1%
1683+
1684+
# Test wall insulation covering most of above and below-grade portions of wall
1685+
fwall = HPXML::FoundationWall.new(nil)
1686+
fwall.height = 5.0
1687+
fwall.depth_below_grade = 1.5
1688+
fwall.type = HPXML::FoundationWallTypeSolidConcrete
1689+
fwall.thickness = 4.0 # in
1690+
fwall.insulation_interior_r_value = 10.0
1691+
fwall.insulation_exterior_r_value = 0.0
1692+
fwall.insulation_interior_distance_to_top = 0.3
1693+
fwall.insulation_exterior_distance_to_top = 0.0
1694+
fwall.insulation_interior_distance_to_bottom = 4.9
1695+
fwall.insulation_exterior_distance_to_bottom = 0.0
1696+
rvalue = 1.0 / HVACSizing.get_foundation_wall_below_grade_ufactor(fwall, false, nil)
1697+
assert_in_epsilon(10.25, rvalue, tol)
1698+
rvalue = 1.0 / HVACSizing.get_foundation_wall_above_grade_ufactor(fwall, true)
1699+
assert_in_epsilon(9.6, rvalue, tol)
1700+
1701+
# Same as above but test exterior wall insulation
1702+
fwall.insulation_interior_r_value = 0.0
1703+
fwall.insulation_exterior_r_value = 10.0
1704+
fwall.insulation_interior_distance_to_top = 0.0
1705+
fwall.insulation_exterior_distance_to_top = 0.3
1706+
fwall.insulation_interior_distance_to_bottom = 0.0
1707+
fwall.insulation_exterior_distance_to_bottom = 4.9
1708+
rvalue = 1.0 / HVACSizing.get_foundation_wall_below_grade_ufactor(fwall, false, nil)
1709+
assert_in_epsilon(10.25, rvalue, tol)
1710+
rvalue = 1.0 / HVACSizing.get_foundation_wall_above_grade_ufactor(fwall, true)
1711+
assert_in_epsilon(9.6, rvalue, tol)
1712+
1713+
# Test small coverage of below-grade portion of wall, no coverage of above-grade
1714+
fwall.insulation_exterior_distance_to_top = 4.4
1715+
rvalue = 1.0 / HVACSizing.get_foundation_wall_below_grade_ufactor(fwall, false, nil)
1716+
assert_in_epsilon(2.7, rvalue, tol)
1717+
rvalue = 1.0 / HVACSizing.get_foundation_wall_above_grade_ufactor(fwall, true)
1718+
assert_in_epsilon(1.2, rvalue, tol)
1719+
1720+
# Test small coverage of above-grade portion of wall, no coverage of below-grade
1721+
fwall.insulation_exterior_distance_to_top = 2.3
1722+
fwall.insulation_exterior_distance_to_bottom = 3.5
1723+
rvalue = 1.0 / HVACSizing.get_foundation_wall_below_grade_ufactor(fwall, false, nil)
1724+
assert_in_epsilon(1.0, rvalue, tol)
1725+
rvalue = 1.0 / HVACSizing.get_foundation_wall_above_grade_ufactor(fwall, true)
1726+
assert_in_epsilon(2.1, rvalue, tol)
1727+
end
1728+
16811729
def test_multiple_zones
16821730
# Run base-zones-spaces-multiple.xml
16831731
args_hash = {}

workflow/tests/base_results/results_simulations_hvac.csv

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -461,21 +461,21 @@ house012.xml,24.62,91.58,23400.0,23200.0,0.0,14401.0,1329.0,1906.0,0.0,333.0,290
461461
house013.xml,24.62,91.58,18000.0,18000.0,17060.0,13514.0,3725.0,2049.0,0.0,363.0,1822.0,0.0,1575.0,0.0,1042.0,2434.0,504.0,0.0,10760.0,1618.0,2200.0,0.0,221.0,679.0,0.0,576.0,0.0,1644.0,439.0,184.0,3090.0,0.0,109.0,1721.0,312.0,569.0,239.0,600.0
462462
house014.xml,24.62,91.58,18000.0,18000.0,17060.0,14773.0,3864.0,2335.0,0.0,320.0,2332.0,0.0,1632.0,0.0,1080.0,2689.0,521.0,0.0,12196.0,1685.0,3377.0,0.0,194.0,869.0,0.0,596.0,0.0,1703.0,490.0,190.0,3090.0,0.0,0.0,1795.0,312.0,636.0,247.0,600.0
463463
house015.xml,24.62,91.58,18000.0,18000.0,17060.0,13514.0,3725.0,2049.0,0.0,363.0,1822.0,0.0,1575.0,0.0,1042.0,2434.0,504.0,0.0,10760.0,1618.0,2200.0,0.0,221.0,679.0,0.0,576.0,0.0,1644.0,439.0,184.0,3090.0,0.0,109.0,1721.0,312.0,569.0,239.0,600.0
464-
house016.xml,19.22,86.72,136000.0,36000.0,36000.0,26557.0,0.0,5399.0,0.0,171.0,10796.0,0.0,0.0,2279.0,2689.0,5224.0,0.0,0.0,18908.0,0.0,7747.0,0.0,90.0,3618.0,0.0,0.0,0.0,2156.0,585.0,0.0,3320.0,0.0,1391.0,1976.0,0.0,1176.0,0.0,800.0
464+
house016.xml,19.22,86.72,136000.0,36000.0,36000.0,26482.0,0.0,5399.0,0.0,171.0,10721.0,0.0,0.0,2279.0,2689.0,5224.0,0.0,0.0,18908.0,0.0,7747.0,0.0,90.0,3618.0,0.0,0.0,0.0,2156.0,585.0,0.0,3320.0,0.0,1391.0,1976.0,0.0,1176.0,0.0,800.0
465465
house017.xml,16.16,89.24,60000.0,24000.0,0.0,36794.0,0.0,4833.0,0.0,181.0,15647.0,0.0,424.0,1146.0,3048.0,11516.0,0.0,0.0,17960.0,0.0,5437.0,0.0,85.0,3759.0,0.0,176.0,0.0,2221.0,1559.0,0.0,3550.0,0.0,1173.0,3517.0,0.0,2517.0,0.0,1000.0
466466
house018.xml,19.22,86.72,36000.0,36000.0,36000.0,20834.0,7443.0,2514.0,0.0,150.0,3004.0,0.0,1852.0,0.0,2749.0,3122.0,0.0,0.0,13118.0,2787.0,1961.0,0.0,79.0,790.0,0.0,427.0,0.0,2204.0,350.0,0.0,4520.0,0.0,0.0,2774.0,1271.0,703.0,0.0,800.0
467467
house019.xml,16.16,89.24,100000.0,60000.0,0.0,50019.0,0.0,9523.0,0.0,1028.0,26810.0,0.0,0.0,1481.0,5769.0,5408.0,0.0,0.0,33949.0,0.0,12218.0,0.0,482.0,11373.0,0.0,0.0,0.0,4204.0,732.0,0.0,4520.0,0.0,420.0,1982.0,0.0,1182.0,0.0,800.0
468-
house020.xml,19.22,86.72,120000.0,60000.0,0.0,44786.0,0.0,10325.0,0.0,395.0,14251.0,598.0,0.0,2185.0,6812.0,10221.0,0.0,0.0,26134.0,0.0,10675.0,0.0,208.0,3871.0,253.0,0.0,0.0,5463.0,1145.0,0.0,4520.0,0.0,0.0,3102.0,0.0,2302.0,0.0,800.0
469-
house021.xml,16.16,89.24,130000.0,60000.0,0.0,52327.0,7802.0,10175.0,0.0,318.0,15976.0,0.0,474.0,1561.0,3431.0,12589.0,0.0,0.0,29308.0,5825.0,9824.0,0.0,149.0,4358.0,0.0,196.0,0.0,2501.0,1704.0,0.0,4750.0,0.0,0.0,4907.0,1155.0,2752.0,0.0,1000.0
468+
house020.xml,19.22,86.72,120000.0,60000.0,0.0,44565.0,0.0,10325.0,0.0,395.0,14030.0,598.0,0.0,2185.0,6812.0,10221.0,0.0,0.0,26134.0,0.0,10675.0,0.0,208.0,3871.0,253.0,0.0,0.0,5463.0,1145.0,0.0,4520.0,0.0,0.0,3102.0,0.0,2302.0,0.0,800.0
469+
house021.xml,16.16,89.24,130000.0,60000.0,0.0,52296.0,7801.0,10175.0,0.0,318.0,15948.0,0.0,474.0,1561.0,3431.0,12589.0,0.0,0.0,29308.0,5825.0,9824.0,0.0,149.0,4358.0,0.0,196.0,0.0,2501.0,1704.0,0.0,4750.0,0.0,0.0,4907.0,1155.0,2752.0,0.0,1000.0
470470
house022.xml,16.16,89.24,100000.0,36000.0,0.0,53870.0,0.0,10741.0,0.0,737.0,11570.0,2029.0,5583.0,0.0,2115.0,21097.0,0.0,0.0,25886.0,0.0,8964.0,0.0,345.0,4993.0,1190.0,1477.0,0.0,1542.0,2856.0,0.0,4520.0,0.0,0.0,5411.0,0.0,4611.0,0.0,800.0
471471
house023.xml,16.16,89.24,125000.0,42000.0,0.0,45714.0,0.0,5067.0,0.0,362.0,19026.0,0.0,0.0,1359.0,4899.0,15002.0,0.0,0.0,23533.0,0.0,7842.0,0.0,170.0,4369.0,0.0,0.0,0.0,3570.0,2017.0,0.0,4750.0,0.0,815.0,4258.0,0.0,3258.0,0.0,1000.0
472-
house024.xml,16.16,89.24,85000.0,30000.0,0.0,62493.0,14489.0,4381.0,0.0,318.0,17712.0,0.0,4806.0,0.0,4266.0,16520.0,0.0,0.0,22253.0,1146.0,4065.0,0.0,149.0,6956.0,0.0,1271.0,0.0,3109.0,2236.0,0.0,3320.0,0.0,0.0,6674.0,2263.0,3611.0,0.0,800.0
472+
house024.xml,16.16,89.24,85000.0,30000.0,0.0,62450.0,14482.0,4381.0,0.0,318.0,17712.0,0.0,4770.0,0.0,4266.0,16520.0,0.0,0.0,22244.0,1147.0,4065.0,0.0,149.0,6956.0,0.0,1262.0,0.0,3109.0,2236.0,0.0,3320.0,0.0,0.0,6673.0,2261.0,3611.0,0.0,800.0
473473
house025.xml,24.62,91.58,158000.0,81000.0,33000.0,58916.0,24150.0,4722.0,0.0,1238.0,9584.0,0.0,6668.0,0.0,1863.0,10692.0,0.0,0.0,36229.0,12064.0,7472.0,0.0,752.0,4870.0,0.0,2436.0,0.0,1707.0,2185.0,0.0,4520.0,0.0,224.0,9603.0,5968.0,2835.0,0.0,800.0
474474
house026.xml,24.62,91.58,84000.0,0.0,0.0,22263.0,0.0,3869.0,0.0,128.0,5954.0,0.0,5911.0,0.0,1459.0,4942.0,0.0,0.0,18030.0,0.0,5623.0,0.0,78.0,2615.0,0.0,2232.0,0.0,2302.0,1200.0,0.0,3320.0,0.0,661.0,2356.0,0.0,1556.0,0.0,800.0
475475
house027.xml,24.62,91.58,75000.0,36000.0,0.0,37405.0,7703.0,4494.0,0.0,375.0,6506.0,550.0,305.0,7854.0,1516.0,8102.0,0.0,0.0,20235.0,3775.0,4295.0,0.0,228.0,3194.0,270.0,163.0,0.0,2392.0,2456.0,0.0,3320.0,0.0,142.0,5745.0,1758.0,3187.0,0.0,800.0
476476
house028.xml,24.62,91.58,75000.0,36000.0,0.0,30833.0,8672.0,4365.0,0.0,346.0,5417.0,616.0,217.0,3265.0,1488.0,6447.0,0.0,0.0,20990.0,3943.0,5941.0,0.0,203.0,2395.0,374.0,113.0,0.0,2348.0,1599.0,0.0,3550.0,0.0,524.0,5099.0,2024.0,2075.0,0.0,1000.0
477-
house029.xml,17.24,91.22,77000.0,36000.0,0.0,30616.0,3395.0,4924.0,0.0,208.0,8320.0,0.0,3185.0,0.0,2105.0,8480.0,0.0,0.0,17077.0,-566.0,5126.0,0.0,131.0,3041.0,0.0,979.0,0.0,2842.0,1688.0,0.0,3320.0,0.0,517.0,3961.0,903.0,2258.0,0.0,800.0
478-
house030.xml,17.24,91.22,87000.0,0.0,0.0,19524.0,0.0,3366.0,0.0,508.0,7724.0,0.0,0.0,2699.0,1036.0,4190.0,0.0,0.0,11115.0,0.0,2821.0,0.0,278.0,2572.0,0.0,0.0,0.0,1399.0,944.0,0.0,3090.0,0.0,10.0,1863.0,0.0,1263.0,0.0,600.0
477+
house029.xml,17.24,91.22,77000.0,36000.0,0.0,29021.0,3361.0,4924.0,0.0,208.0,8320.0,0.0,1623.0,0.0,2105.0,8480.0,0.0,0.0,16602.0,-561.0,5126.0,0.0,131.0,3041.0,0.0,499.0,0.0,2842.0,1688.0,0.0,3320.0,0.0,517.0,3961.0,903.0,2258.0,0.0,800.0
478+
house030.xml,17.24,91.22,87000.0,0.0,0.0,19417.0,0.0,3366.0,0.0,508.0,7618.0,0.0,0.0,2699.0,1036.0,4190.0,0.0,0.0,11115.0,0.0,2821.0,0.0,278.0,2572.0,0.0,0.0,0.0,1399.0,944.0,0.0,3090.0,0.0,10.0,1863.0,0.0,1263.0,0.0,600.0
479479
house031.xml,16.16,89.24,200000.0,96000.0,0.0,82913.0,13668.0,10261.0,0.0,650.0,23683.0,0.0,1039.0,1227.0,7333.0,25050.0,0.0,0.0,45405.0,9884.0,13165.0,0.0,305.0,8876.0,0.0,431.0,0.0,5345.0,3391.0,0.0,4010.0,0.0,0.0,8656.0,1780.0,5476.0,0.0,1400.0
480480
house032.xml,16.16,89.24,75000.0,0.0,0.0,38366.0,0.0,5132.0,0.0,690.0,18895.0,0.0,0.0,1286.0,5647.0,6716.0,0.0,0.0,19521.0,0.0,6289.0,0.0,324.0,4335.0,0.0,0.0,0.0,4115.0,907.0,0.0,3550.0,0.0,0.0,2465.0,0.0,1465.0,0.0,1000.0
481481
house033.xml,16.16,89.24,109000.0,0.0,0.0,32532.0,0.0,5273.0,0.0,362.0,6028.0,0.0,4854.0,0.0,8461.0,7556.0,0.0,0.0,19372.0,0.0,4578.0,0.0,170.0,2603.0,0.0,1284.0,0.0,6166.0,1021.0,0.0,3550.0,0.0,0.0,2648.0,0.0,1648.0,0.0,1000.0
@@ -489,8 +489,8 @@ house040.xml,16.16,89.24,75000.0,0.0,0.0,44416.0,0.0,7249.0,0.0,1028.0,13896.0,5
489489
house041.xml,-13.72,81.14,75000.0,30000.0,0.0,108662.0,0.0,18666.0,0.0,1624.0,41126.0,0.0,2729.0,7268.0,5077.0,32172.0,0.0,0.0,29020.0,0.0,12100.0,0.0,293.0,4460.0,0.0,394.0,0.0,3708.0,846.0,0.0,3550.0,0.0,3669.0,2295.0,0.0,1295.0,0.0,1000.0
490490
house042.xml,-13.72,81.14,90000.0,24000.0,0.0,96150.0,0.0,17465.0,0.0,1112.0,41512.0,0.0,927.0,2608.0,4248.0,28278.0,0.0,0.0,17836.0,0.0,5082.0,0.0,249.0,4415.0,0.0,13.0,0.0,3102.0,741.0,0.0,3550.0,0.0,685.0,2134.0,0.0,1134.0,0.0,1000.0
491491
house043.xml,-13.72,81.14,90000.0,30000.0,0.0,64332.0,0.0,11581.0,0.0,2533.0,29951.0,0.0,202.0,1896.0,1519.0,16650.0,0.0,0.0,16137.0,0.0,5002.0,0.0,572.0,3716.0,0.0,3.0,0.0,1109.0,436.0,0.0,3320.0,0.0,1979.0,1468.0,0.0,668.0,0.0,800.0
492-
house044.xml,-13.72,81.14,110000.0,36000.0,0.0,83025.0,0.0,8422.0,0.0,1467.0,30320.0,1911.0,5521.0,1706.0,3592.0,30085.0,0.0,0.0,21809.0,0.0,6118.0,0.0,269.0,3897.0,368.0,208.0,0.0,2623.0,787.0,0.0,3320.0,0.0,4218.0,2005.0,0.0,1205.0,0.0,800.0
493-
house045.xml,-13.72,81.14,70000.0,30000.0,0.0,52712.0,0.0,8558.0,455.0,472.0,24464.0,1464.0,31.0,1726.0,1367.0,14175.0,0.0,0.0,14801.0,0.0,7799.0,810.0,110.0,1109.0,193.0,0.0,0.0,999.0,461.0,0.0,3320.0,0.0,0.0,1506.0,0.0,706.0,0.0,800.0
492+
house044.xml,-13.72,81.14,110000.0,36000.0,0.0,82332.0,0.0,8422.0,0.0,1467.0,29628.0,1911.0,5521.0,1706.0,3592.0,30085.0,0.0,0.0,21809.0,0.0,6118.0,0.0,269.0,3897.0,368.0,208.0,0.0,2623.0,787.0,0.0,3320.0,0.0,4218.0,2005.0,0.0,1205.0,0.0,800.0
493+
house045.xml,-13.72,81.14,70000.0,30000.0,0.0,52400.0,0.0,8558.0,455.0,472.0,24152.0,1464.0,31.0,1726.0,1367.0,14175.0,0.0,0.0,14801.0,0.0,7799.0,810.0,110.0,1109.0,193.0,0.0,0.0,999.0,461.0,0.0,3320.0,0.0,0.0,1506.0,0.0,706.0,0.0,800.0
494494
house046.xml,24.62,91.58,18000.0,18000.0,17065.0,16969.0,3903.0,1800.0,0.0,182.0,2847.0,0.0,0.0,0.0,1604.0,6633.0,0.0,0.0,15182.0,3716.0,2178.0,0.0,110.0,1595.0,0.0,0.0,0.0,1823.0,1399.0,0.0,2860.0,0.0,1500.0,2698.0,483.0,1815.0,0.0,400.0
495495
house047.xml,19.22,86.72,20000.0,18000.0,0.0,7271.0,1053.0,1216.0,0.0,0.0,630.0,0.0,0.0,662.0,0.0,3710.0,0.0,0.0,4199.0,0.0,516.0,0.0,0.0,200.0,0.0,0.0,0.0,0.0,623.0,0.0,2860.0,0.0,0.0,1652.0,0.0,1252.0,0.0,400.0
496496
house048.xml,25.88,98.42,63000.0,46500.0,0.0,51897.0,11933.0,4499.0,0.0,694.0,9939.0,828.0,63.0,10750.0,2249.0,7887.0,3053.0,0.0,31390.0,8097.0,4822.0,0.0,589.0,7960.0,547.0,57.0,0.0,1959.0,2188.0,1621.0,3550.0,0.0,0.0,4760.0,1126.0,1513.0,1121.0,1000.0

0 commit comments

Comments
 (0)