huff 1.4.0__py3-none-any.whl → 1.5.0__py3-none-any.whl
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.
- huff/gistools.py +2 -2
- huff/models.py +985 -196
- huff/ors.py +2 -2
- huff/osm.py +2 -2
- huff/tests/data/Haslach_new_supermarket.cpg +1 -0
- huff/tests/data/Haslach_new_supermarket.dbf +0 -0
- huff/tests/data/Haslach_new_supermarket.prj +1 -0
- huff/tests/data/Haslach_new_supermarket.qmd +26 -0
- huff/tests/data/Haslach_new_supermarket.shp +0 -0
- huff/tests/data/Haslach_new_supermarket.shx +0 -0
- huff/tests/data/Wieland2015.xlsx +0 -0
- huff/tests/tests_huff.py +163 -25
- {huff-1.4.0.dist-info → huff-1.5.0.dist-info}/METADATA +14 -3
- huff-1.5.0.dist-info/RECORD +30 -0
- huff-1.4.0.dist-info/RECORD +0 -24
- {huff-1.4.0.dist-info → huff-1.5.0.dist-info}/WHEEL +0 -0
- {huff-1.4.0.dist-info → huff-1.5.0.dist-info}/top_level.txt +0 -0
huff/ors.py
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
# Author: Thomas Wieland
|
5
5
|
# ORCID: 0000-0001-5168-9846
|
6
6
|
# mail: geowieland@googlemail.com
|
7
|
-
# Version: 1.4.
|
8
|
-
# Last update: 2025-06-
|
7
|
+
# Version: 1.4.1
|
8
|
+
# Last update: 2025-06-16 17:44
|
9
9
|
# Copyright (c) 2025 Thomas Wieland
|
10
10
|
#-----------------------------------------------------------------------
|
11
11
|
|
huff/osm.py
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
# Author: Thomas Wieland
|
5
5
|
# ORCID: 0000-0001-5168-9846
|
6
6
|
# mail: geowieland@googlemail.com
|
7
|
-
# Version: 1.4.
|
8
|
-
# Last update: 2025-06-
|
7
|
+
# Version: 1.4.1
|
8
|
+
# Last update: 2025-06-16 17:44
|
9
9
|
# Copyright (c) 2025 Thomas Wieland
|
10
10
|
#-----------------------------------------------------------------------
|
11
11
|
|
@@ -0,0 +1 @@
|
|
1
|
+
UTF-8
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
PROJCS["DHDN_3_Degree_Gauss_Zone_3",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
2
|
+
<qgis version="3.28.3-Firenze">
|
3
|
+
<identifier></identifier>
|
4
|
+
<parentidentifier></parentidentifier>
|
5
|
+
<language></language>
|
6
|
+
<type></type>
|
7
|
+
<title></title>
|
8
|
+
<abstract></abstract>
|
9
|
+
<links/>
|
10
|
+
<fees></fees>
|
11
|
+
<encoding></encoding>
|
12
|
+
<crs>
|
13
|
+
<spatialrefsys nativeFormat="Wkt">
|
14
|
+
<wkt></wkt>
|
15
|
+
<proj4></proj4>
|
16
|
+
<srsid>0</srsid>
|
17
|
+
<srid>0</srid>
|
18
|
+
<authid></authid>
|
19
|
+
<description></description>
|
20
|
+
<projectionacronym></projectionacronym>
|
21
|
+
<ellipsoidacronym></ellipsoidacronym>
|
22
|
+
<geographicflag>false</geographicflag>
|
23
|
+
</spatialrefsys>
|
24
|
+
</crs>
|
25
|
+
<extent/>
|
26
|
+
</qgis>
|
Binary file
|
Binary file
|
huff/tests/data/Wieland2015.xlsx
CHANGED
Binary file
|
huff/tests/tests_huff.py
CHANGED
@@ -4,13 +4,13 @@
|
|
4
4
|
# Author: Thomas Wieland
|
5
5
|
# ORCID: 0000-0001-5168-9846
|
6
6
|
# mail: geowieland@googlemail.com
|
7
|
-
# Version: 1.
|
8
|
-
# Last update: 2025-06-
|
7
|
+
# Version: 1.5.0
|
8
|
+
# Last update: 2025-06-25 18:32
|
9
9
|
# Copyright (c) 2025 Thomas Wieland
|
10
10
|
#-----------------------------------------------------------------------
|
11
11
|
|
12
12
|
|
13
|
-
from huff.models import create_interaction_matrix, get_isochrones, load_geodata, load_interaction_matrix, modelfit
|
13
|
+
from huff.models import create_interaction_matrix, get_isochrones, load_geodata, load_interaction_matrix, load_marketareas, market_shares, modelfit
|
14
14
|
from huff.osm import map_with_basemap
|
15
15
|
from huff.gistools import buffers, point_spatial_join
|
16
16
|
|
@@ -39,8 +39,8 @@ Haslach.define_marketsize("pop")
|
|
39
39
|
# Definition of market size variable
|
40
40
|
|
41
41
|
Haslach.define_transportcosts_weighting(
|
42
|
-
#param_lambda = -2.2,
|
43
|
-
# one weighting parameter for power function (default)
|
42
|
+
# param_lambda = -2.2,
|
43
|
+
# # one weighting parameter for power function (default)
|
44
44
|
param_lambda = [10, -0.5],
|
45
45
|
func="logistic"
|
46
46
|
# two weighting parameters for logistic function
|
@@ -77,7 +77,8 @@ Haslach_supermarkets.isochrones(
|
|
77
77
|
save_output=True,
|
78
78
|
ors_auth="5b3ce3597851110001cf62480a15aafdb5a64f4d91805929f8af6abd",
|
79
79
|
output_filepath="Haslach_supermarkets_iso.shp",
|
80
|
-
output_crs="EPSG:31467"
|
80
|
+
output_crs="EPSG:31467",
|
81
|
+
delay=0.2
|
81
82
|
)
|
82
83
|
# Obtaining isochrones for walking (5 and 10 minutes)
|
83
84
|
# ORS API documentation: https://openrouteservice.org/dev/#/api-docs/v2/
|
@@ -99,43 +100,90 @@ haslach_interactionmatrix = create_interaction_matrix(
|
|
99
100
|
)
|
100
101
|
# Creating interaction matrix
|
101
102
|
|
102
|
-
|
103
|
+
haslach_interactionmatrix.transport_costs(
|
103
104
|
#ors_auth="5b3ce3597851110001cf62480a15aafdb5a64f4d91805929f8af6abd"
|
104
|
-
network=False
|
105
|
+
network=False,
|
106
|
+
#distance_unit="meters",
|
105
107
|
# set network = True to calculate transport costs matrix via ORS API (default)
|
106
108
|
)
|
107
109
|
# Obtaining transport costs (default: driving-car)
|
108
110
|
# ORS API documentation: https://openrouteservice.org/dev/#/api-docs/v2/
|
109
111
|
|
110
|
-
|
112
|
+
haslach_interactionmatrix.summary()
|
111
113
|
# Summary of interaction matrix
|
112
114
|
|
113
|
-
print(
|
115
|
+
print(haslach_interactionmatrix.hansen())
|
114
116
|
# Hansen accessibility for interaction matrix
|
115
117
|
|
116
|
-
|
118
|
+
haslach_interactionmatrix.flows()
|
117
119
|
# Calculating spatial flows for interaction matrix
|
118
120
|
|
119
|
-
huff_model =
|
121
|
+
huff_model = haslach_interactionmatrix.marketareas()
|
120
122
|
# Calculating total market areas
|
121
123
|
# Result of class HuffModel
|
122
124
|
|
123
125
|
huff_model.summary()
|
124
126
|
# Summary of Huff model
|
125
127
|
|
126
|
-
|
127
|
-
|
128
|
-
|
128
|
+
print(huff_model.get_market_areas_df())
|
129
|
+
# Showing total market areas
|
130
|
+
|
131
|
+
|
132
|
+
# Maximum Likelihood fit for Huff Model:
|
133
|
+
|
134
|
+
haslach_interactionmatrix.huff_ml_fit(
|
135
|
+
#initial_params=[1, -2],
|
136
|
+
initial_params=[1, 9, -0.6],
|
137
|
+
method="trust-constr",
|
138
|
+
#bounds = [(0.8, 0.9999),(-2.5, -1.5)],
|
139
|
+
bounds = [(0.8, 0.9999),(7, 11),(-0.9, -0.4)],
|
129
140
|
)
|
130
|
-
print(huff_model_mlfit)
|
131
141
|
# Maximum Likelihood fit for Huff Model
|
132
142
|
|
143
|
+
haslach_interactionmatrix.summary()
|
144
|
+
# Summary of fitted ML-fitted interaction matrix (Huff model)
|
145
|
+
|
146
|
+
huff_model_fit = haslach_interactionmatrix.marketareas()
|
147
|
+
# Calculcation of total market areas
|
148
|
+
# Result of class HuffModel
|
149
|
+
|
150
|
+
huff_model_fit.summary()
|
151
|
+
# Huff model summary
|
152
|
+
|
153
|
+
|
154
|
+
# Adding new supply location:
|
155
|
+
|
156
|
+
Haslach_new_supermarket = load_geodata(
|
157
|
+
"data/Haslach_new_supermarket.shp",
|
158
|
+
location_type="destinations",
|
159
|
+
unique_id="LFDNR"
|
160
|
+
)
|
161
|
+
# Loading new supply locations (shapefile)
|
162
|
+
|
163
|
+
Haslach_new_supermarket.summary()
|
164
|
+
# Summary of new supply locations data
|
165
|
+
|
166
|
+
Haslach_supermarkets.add_new_destinations(Haslach_new_supermarket)
|
167
|
+
# Adding new supermarket to existing supply locations
|
168
|
+
|
169
|
+
Haslach_supermarkets.summary()
|
170
|
+
# Summary of updated supply locations
|
171
|
+
|
172
|
+
huff_model.update()
|
173
|
+
# Update interaction matrix
|
174
|
+
|
175
|
+
huff_model.summary()
|
176
|
+
# Summary of updated interaction matrix
|
177
|
+
|
133
178
|
print(huff_model.get_market_areas_df())
|
134
|
-
# Showing total market areas
|
179
|
+
# Showing total market areas of model with estimated parameters and new destination
|
135
180
|
|
136
|
-
print(
|
181
|
+
print(huff_model.get_interaction_matrix_df())
|
137
182
|
# Showing df of interaction matrix
|
138
183
|
|
184
|
+
huff_model.get_interaction_matrix_df().to_excel("interaction_matrix_df.xlsx")
|
185
|
+
# Export of interaction matrix
|
186
|
+
|
139
187
|
|
140
188
|
# Multiplicative Competitive Interaction Model:
|
141
189
|
|
@@ -164,8 +212,10 @@ Wieland2015_interaction_matrix = load_interaction_matrix(
|
|
164
212
|
"K",
|
165
213
|
"K_KKr"
|
166
214
|
],
|
215
|
+
market_size_col="Sum_Ek1",
|
216
|
+
flows_col="Anb_Eink1",
|
167
217
|
transport_costs_col="Dist_Min2",
|
168
|
-
probabilities_col="
|
218
|
+
probabilities_col="MA_Anb1",
|
169
219
|
data_type="xlsx"
|
170
220
|
)
|
171
221
|
|
@@ -182,10 +232,8 @@ Wieland2015_fit = Wieland2015_interaction_matrix.mci_fit(
|
|
182
232
|
)
|
183
233
|
# Fitting MCI model with four independent variables
|
184
234
|
|
185
|
-
Wieland2015_fit.summary()
|
186
|
-
# MCI model summary
|
187
|
-
|
188
235
|
Wieland2015_fit.probabilities()
|
236
|
+
# Calculating probabilities
|
189
237
|
|
190
238
|
Wieland2015_fit_interactionmatrix = Wieland2015_fit.get_interaction_matrix_df()
|
191
239
|
# Export interaction matrix
|
@@ -194,6 +242,93 @@ Wieland2015_fit.summary()
|
|
194
242
|
# MCI model summary
|
195
243
|
|
196
244
|
|
245
|
+
# Parameter estimation via Maximum Likelihood:
|
246
|
+
|
247
|
+
Wieland2015_interaction_matrix2 = load_interaction_matrix(
|
248
|
+
data="data/Wieland2015.xlsx",
|
249
|
+
customer_origins_col="Quellort",
|
250
|
+
supply_locations_col="Zielort",
|
251
|
+
attraction_col=[
|
252
|
+
"VF",
|
253
|
+
"K",
|
254
|
+
"K_KKr"
|
255
|
+
],
|
256
|
+
market_size_col="Sum_Ek",
|
257
|
+
flows_col="Anb_Eink",
|
258
|
+
transport_costs_col="Dist_Min2",
|
259
|
+
probabilities_col="MA_Anb",
|
260
|
+
data_type="xlsx",
|
261
|
+
xlsx_sheet="interactionmatrix",
|
262
|
+
check_df_vars=False
|
263
|
+
)
|
264
|
+
# Loading empirical interaction matrix again
|
265
|
+
|
266
|
+
Wieland2015_interaction_matrix2.define_weightings(
|
267
|
+
vars_funcs = {
|
268
|
+
0: {
|
269
|
+
"name": "A_j",
|
270
|
+
"func": "power"
|
271
|
+
},
|
272
|
+
1: {
|
273
|
+
"name": "t_ij",
|
274
|
+
"func": "power",
|
275
|
+
#"func": "exponential"
|
276
|
+
#"func": "logistic"
|
277
|
+
},
|
278
|
+
2: {
|
279
|
+
"name": "K",
|
280
|
+
"func": "power"
|
281
|
+
},
|
282
|
+
3: {
|
283
|
+
"name": "K_KKr",
|
284
|
+
"func": "power"
|
285
|
+
}
|
286
|
+
}
|
287
|
+
)
|
288
|
+
# Defining weighting functions
|
289
|
+
|
290
|
+
Wieland2015_interaction_matrix2.huff_ml_fit(
|
291
|
+
# Power TC function
|
292
|
+
initial_params=[0.9, -0.5, 0.5, 0.3],
|
293
|
+
bounds=[(0.5, 1), (-0.7, -0.2), (0.2, 0.7), (0.2, 0.7)],
|
294
|
+
# # Logistic TC function:
|
295
|
+
# initial_params=[0.9, 10, -0.5, 0.5, 0.3],
|
296
|
+
# bounds=[(0.5, 1), (8, 12), (-0.7, -0.2), (0.2, 0.7), (0.2, 0.7)],
|
297
|
+
fit_by="flows",
|
298
|
+
method = "trust-constr"
|
299
|
+
)
|
300
|
+
# ML fit with power transport cost function
|
301
|
+
|
302
|
+
Wieland2015_interaction_matrix2.summary()
|
303
|
+
# Summary of interaction matrix
|
304
|
+
|
305
|
+
huff_model_fit2 = Wieland2015_interaction_matrix2.marketareas()
|
306
|
+
# Calculation of market areas
|
307
|
+
|
308
|
+
huff_model_fit2.summary()
|
309
|
+
# Summary of Hudd model
|
310
|
+
|
311
|
+
|
312
|
+
# Loading and including total market areas
|
313
|
+
|
314
|
+
Wieland2025_totalmarketareas = load_marketareas(
|
315
|
+
data="data/Wieland2015.xlsx",
|
316
|
+
supply_locations_col="Zielort",
|
317
|
+
total_col="Anb_Eink",
|
318
|
+
data_type="xlsx",
|
319
|
+
xlsx_sheet="total_marketareas"
|
320
|
+
)
|
321
|
+
# Loading empirical total market areas
|
322
|
+
|
323
|
+
huff_model_fit2 = Wieland2025_totalmarketareas.add_to_model(
|
324
|
+
huff_model_fit2
|
325
|
+
)
|
326
|
+
# Adding total market areas to HuffModel object
|
327
|
+
|
328
|
+
print(huff_model_fit2.get_market_areas_df())
|
329
|
+
# Showing total market areas of HuffModel object
|
330
|
+
|
331
|
+
|
197
332
|
# Buffer analysis:
|
198
333
|
|
199
334
|
Haslach_supermarkets_gdf = Haslach_supermarkets.get_geodata_gpd_original()
|
@@ -252,7 +387,8 @@ map_with_basemap(
|
|
252
387
|
Haslach_supermarkets_gdf
|
253
388
|
],
|
254
389
|
styles={
|
255
|
-
0: {
|
390
|
+
0: {
|
391
|
+
"name": "Isochrones",
|
256
392
|
"color": {
|
257
393
|
"segm_min": {
|
258
394
|
"3": "midnightblue",
|
@@ -264,11 +400,13 @@ map_with_basemap(
|
|
264
400
|
},
|
265
401
|
"alpha": 0.3
|
266
402
|
},
|
267
|
-
1: {
|
403
|
+
1: {
|
404
|
+
"name": "Districts",
|
268
405
|
"color": "black",
|
269
406
|
"alpha": 1
|
270
407
|
},
|
271
|
-
2: {
|
408
|
+
2: {
|
409
|
+
"name": "Supermarket chains",
|
272
410
|
"color": {
|
273
411
|
"Name": {
|
274
412
|
"Aldi S├╝d": "blue",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: huff
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.5.0
|
4
4
|
Summary: huff: Huff Model Market Area Analysis
|
5
5
|
Author: Thomas Wieland
|
6
6
|
Author-email: geowieland@googlemail.com
|
@@ -28,14 +28,25 @@ Thomas Wieland [ORCID](https://orcid.org/0000-0001-5168-9846) [EMail](mailto:geo
|
|
28
28
|
See the /tests directory for usage examples of most of the included functions.
|
29
29
|
|
30
30
|
|
31
|
+
## Updates v1.5.0
|
32
|
+
- Extensions:
|
33
|
+
- Huff model utility via InteractionMatrix.utility() extended to >2 variables
|
34
|
+
- Huff Model Maximum Likelihood fit via InteractionMatrix.huff_ml_fit() extended: >2 variables, fit by flows or probabilities
|
35
|
+
- Loading total market areas data as class MarketAreas
|
36
|
+
- Extended output of InteractionMatrix.summary()
|
37
|
+
- Bugfixes:
|
38
|
+
- InteractionMatrix.utility(): Tests for availability of relevant columns
|
39
|
+
- InteractionMatrix.flows(): Tests for availability of relevant columns
|
40
|
+
- modelfit(): Symmetrical (M)APE instead of (M)APE when observed contains zeros
|
41
|
+
|
31
42
|
## Features
|
32
43
|
|
33
44
|
- **Huff Model**:
|
34
45
|
- Defining origins and destinations with weightings
|
35
46
|
- Creating interaction matrix from origins and destinations
|
36
|
-
- Market simulation with basic Huff Model
|
37
47
|
- Different function types: power, exponential, logistic
|
38
|
-
- Huff model parameter estimation via Maximum Likelihood (ML)
|
48
|
+
- Huff model parameter estimation via Maximum Likelihood (ML) by probalities and customer flows
|
49
|
+
- Huff model market simulation
|
39
50
|
- **Multiplicative Competitive Interaction Model**:
|
40
51
|
- Log-centering transformation of interaction matrix
|
41
52
|
- Fitting MCI model with >= 2 independent variables
|
@@ -0,0 +1,30 @@
|
|
1
|
+
huff/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
huff/gistools.py,sha256=fgeE1IsUO7UIaawb23kuiz_Rlxn7T18iLLTA5yvgp74,7038
|
3
|
+
huff/models.py,sha256=fGQP6eZOkV9wRVNw_0jYY8zIW74VAR0MMQ9YR8Vjcn4,105491
|
4
|
+
huff/ors.py,sha256=JlO2UEishQX87PIiktksOrVT5QdB-GEWgjXcxoR_KuA,11929
|
5
|
+
huff/osm.py,sha256=9A-7hxeZyjA2r8w2_IqqwH14qq2Y9AS1GxVKOD7utqs,7747
|
6
|
+
huff/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
huff/tests/tests_huff.py,sha256=xhJcUYQ6dJIg6cPMez8yRIcicvuXkww8NPHXmt-Qrjg,11955
|
8
|
+
huff/tests/data/Haslach.cpg,sha256=OtMDH1UDpEBK-CUmLugjLMBNTqZoPULF3QovKiesmCQ,5
|
9
|
+
huff/tests/data/Haslach.dbf,sha256=GVPIt05OzDO7UrRDcsMhiYWvyXAPg6Z-qkiysFzj-fc,506
|
10
|
+
huff/tests/data/Haslach.prj,sha256=2Jy1Vlzh7UxQ1MXpZ9UYLs2SxfrObj2xkEkZyLqmGTY,437
|
11
|
+
huff/tests/data/Haslach.qmd,sha256=JlcOYzG4vI1NH1IuOpxwIPnJsCyC-pDRAI00TzEvNf0,2522
|
12
|
+
huff/tests/data/Haslach.shp,sha256=s7ks-ukOIKMJCD5x6m0MO6pwkg1USvhudQKTg74ib1E,212
|
13
|
+
huff/tests/data/Haslach.shx,sha256=VEMghRPP_HUYIuGoxR7X0eHQe9LnO4s8JP4twfzKyyk,132
|
14
|
+
huff/tests/data/Haslach_new_supermarket.cpg,sha256=OtMDH1UDpEBK-CUmLugjLMBNTqZoPULF3QovKiesmCQ,5
|
15
|
+
huff/tests/data/Haslach_new_supermarket.dbf,sha256=QFO7fq2F2dSOh-JEXF8lq_vZKfaPzCHNGCUtSkixbD4,3054
|
16
|
+
huff/tests/data/Haslach_new_supermarket.prj,sha256=2Jy1Vlzh7UxQ1MXpZ9UYLs2SxfrObj2xkEkZyLqmGTY,437
|
17
|
+
huff/tests/data/Haslach_new_supermarket.qmd,sha256=Yo2TZyuelYj3Uc00_Wa5a8ZfA-GeyRA1PsODQS9tRPg,666
|
18
|
+
huff/tests/data/Haslach_new_supermarket.shp,sha256=RYyoQPM-W-5Ifm9PV2H6oghhm954BMmZzZ9Q_WlUOPQ,128
|
19
|
+
huff/tests/data/Haslach_new_supermarket.shx,sha256=wSYoIeoHrdsiLqVPxRPA5ZBy7IQ7lx1BoXjV9fXEP9w,108
|
20
|
+
huff/tests/data/Haslach_supermarkets.cpg,sha256=OtMDH1UDpEBK-CUmLugjLMBNTqZoPULF3QovKiesmCQ,5
|
21
|
+
huff/tests/data/Haslach_supermarkets.dbf,sha256=4fTBxntDvQ8qFPdGK82ywJd2Xq_9nApDyi3h5_KPFSc,21282
|
22
|
+
huff/tests/data/Haslach_supermarkets.prj,sha256=2Jy1Vlzh7UxQ1MXpZ9UYLs2SxfrObj2xkEkZyLqmGTY,437
|
23
|
+
huff/tests/data/Haslach_supermarkets.qmd,sha256=JlcOYzG4vI1NH1IuOpxwIPnJsCyC-pDRAI00TzEvNf0,2522
|
24
|
+
huff/tests/data/Haslach_supermarkets.shp,sha256=X7QbQ0BTMag_B-bDRbpr-go2BQIXo3Y8zMAKpYZmlps,324
|
25
|
+
huff/tests/data/Haslach_supermarkets.shx,sha256=j23QHX-SmdAeN04rw0x8nUOran-OCg_T6r_LvzzEPWs,164
|
26
|
+
huff/tests/data/Wieland2015.xlsx,sha256=jUt9YcRrYL99AjxzXKMXD3o5erjd9r_jYfnALdrTQ3o,24333
|
27
|
+
huff-1.5.0.dist-info/METADATA,sha256=Ig_hu8ssyzbtuAUUxMw3ykAHpthSoyMeSxAgeSw3P9o,6319
|
28
|
+
huff-1.5.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
29
|
+
huff-1.5.0.dist-info/top_level.txt,sha256=nlzX-PxZNFmIxANIJMySuIFPihd6qOBkRlhIC28NEsQ,5
|
30
|
+
huff-1.5.0.dist-info/RECORD,,
|
huff-1.4.0.dist-info/RECORD
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
huff/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
huff/gistools.py,sha256=Bl_5hqjbXwVgUDDXV5Ti-vXhUsKiaMLIFKDDW7CqCd0,7038
|
3
|
-
huff/models.py,sha256=PBB58aO-4XIl-QvO-nfw6X8ElXhzUVsiEMG_PYzgI2M,75159
|
4
|
-
huff/ors.py,sha256=CATQf0s-6iq1VMnQFMlPA2AjyyYyApfarVXyzOtVNo0,11929
|
5
|
-
huff/osm.py,sha256=91spvaFVyKuGLbuRSx6mfi306Lt94J_scD_SQPwrggo,7747
|
6
|
-
huff/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
huff/tests/tests_huff.py,sha256=AfvCjadGeGp6rHod9bTJQsCYk5K3YfwlVg1s16R_1BA,8149
|
8
|
-
huff/tests/data/Haslach.cpg,sha256=OtMDH1UDpEBK-CUmLugjLMBNTqZoPULF3QovKiesmCQ,5
|
9
|
-
huff/tests/data/Haslach.dbf,sha256=GVPIt05OzDO7UrRDcsMhiYWvyXAPg6Z-qkiysFzj-fc,506
|
10
|
-
huff/tests/data/Haslach.prj,sha256=2Jy1Vlzh7UxQ1MXpZ9UYLs2SxfrObj2xkEkZyLqmGTY,437
|
11
|
-
huff/tests/data/Haslach.qmd,sha256=JlcOYzG4vI1NH1IuOpxwIPnJsCyC-pDRAI00TzEvNf0,2522
|
12
|
-
huff/tests/data/Haslach.shp,sha256=s7ks-ukOIKMJCD5x6m0MO6pwkg1USvhudQKTg74ib1E,212
|
13
|
-
huff/tests/data/Haslach.shx,sha256=VEMghRPP_HUYIuGoxR7X0eHQe9LnO4s8JP4twfzKyyk,132
|
14
|
-
huff/tests/data/Haslach_supermarkets.cpg,sha256=OtMDH1UDpEBK-CUmLugjLMBNTqZoPULF3QovKiesmCQ,5
|
15
|
-
huff/tests/data/Haslach_supermarkets.dbf,sha256=4fTBxntDvQ8qFPdGK82ywJd2Xq_9nApDyi3h5_KPFSc,21282
|
16
|
-
huff/tests/data/Haslach_supermarkets.prj,sha256=2Jy1Vlzh7UxQ1MXpZ9UYLs2SxfrObj2xkEkZyLqmGTY,437
|
17
|
-
huff/tests/data/Haslach_supermarkets.qmd,sha256=JlcOYzG4vI1NH1IuOpxwIPnJsCyC-pDRAI00TzEvNf0,2522
|
18
|
-
huff/tests/data/Haslach_supermarkets.shp,sha256=X7QbQ0BTMag_B-bDRbpr-go2BQIXo3Y8zMAKpYZmlps,324
|
19
|
-
huff/tests/data/Haslach_supermarkets.shx,sha256=j23QHX-SmdAeN04rw0x8nUOran-OCg_T6r_LvzzEPWs,164
|
20
|
-
huff/tests/data/Wieland2015.xlsx,sha256=SaVM-Hi5dBTmf2bzszMnZ2Ec8NUE05S_5F2lQj0ayS0,19641
|
21
|
-
huff-1.4.0.dist-info/METADATA,sha256=OHL8b-FoJaADeRyUJDpQZoWYsm3Avm1bBxYak5rc6rI,5692
|
22
|
-
huff-1.4.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
23
|
-
huff-1.4.0.dist-info/top_level.txt,sha256=nlzX-PxZNFmIxANIJMySuIFPihd6qOBkRlhIC28NEsQ,5
|
24
|
-
huff-1.4.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|